我有一个通用列表,它是从另外两个列表中形成的。 orderby 似乎没有正常工作。 BeOrders 先来(按日期排序)然后是 BTOrders(按日期排序)。我错过了一些明显的东西吗?我看不出有什么问题。
orders = new List<DataLayer.OrderStatusItem>();
orders.AddRange(BeOrders);
orders.AddRange(BTOrders);
orders.OrderBy(z => z.ordered);
最佳答案
是的,您错过了 OrderBy
不就地排序 - 它返回一个有序序列:
var inOrder = orders.OrderBy(z => z.ordered);
或者(假设 orders
是 List<...>
类型:
orders = orders.OrderBy(z => z.ordered).ToList();
请注意,这种“无副作用”的方法在整个 LINQ 中都很普遍——没有一个运算符会更改它们所调用的集合;他们以某种形式(过滤、投影等)返回该集合的 View 。
如果你想对 List<T>
进行排序到位你可以使用 List<T>.Sort
. (不过,您必须以不同的方式指定顺序。)
关于c# - 通用列表中的 Orderby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285515/