c# - 通用列表中的 Orderby

标签 c# generic-list

我有一个通用列表,它是从另外两个列表中形成的。 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);

或者(假设 ordersList<...> 类型:

orders = orders.OrderBy(z => z.ordered).ToList();

请注意,这种“无副作用”的方法在整个 LINQ 中都很普遍——没有一个运算符会更改它们所调用的集合;他们以某种形式(过滤、投影等)返回该集合的 View 。

如果你想对 List<T> 进行排序到位你可以使用 List<T>.Sort . (不过,您必须以不同的方式指定顺序。)

关于c# - 通用列表中的 Orderby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7285515/

相关文章:

c# - 如何清除 IQueryable 结果集上的默认 select 子句

c# - 成员资格远程连接字符串在 SQL Server Management Studio 中有效但在 ASP.NET 中无效(错误 26)

c# - 在 C#(WPF) 中使用 C++ dll

Java泛型列表返回类型

c++ - 删除非指针的通用列表

c# - varchar vs nvarchar orderby linq to entities

c# - 如何从当前 .NET 表单/应用程序发送按键 F12

c# - 将 LINQ 查询转换为列表

c# - 将泛型类型转换为其基础类型,反之亦然

c# - 如何从列表中删除特定字段