一尘不染

如何按对象中的属性对 List<T> 进行排序

c#

我有一个名为的类Order,它具有OrderIdOrderDateQuantity和等属性Total。我有这个Order类的列表:

List<Order> objListOrder = new List<Order>();
GetOrderList(objListOrder); // fill list of orders

现在我想根据Order对象的一个属性对列表进行排序,例如我需要按订单日期或订单 ID 对其进行排序。

我如何在 C# 中做到这一点?


阅读 163

收藏
2022-02-23

共2个答案

一尘不染

如果您需要就地对列表进行排序,则可以使用该Sort方法,传递一个Comparison委托:

objListOrder.Sort((x, y) => x.OrderDate.CompareTo(y.OrderDate));

如果您更喜欢创建一个新的排序序列而不是就地排序,那么您可以使用 LINQ 的OrderBy方法,如其他答案中所述。

2022-02-23
一尘不染

我能想到的最简单的方法是使用 Linq:

List<Order> SortedList = objListOrder.OrderBy(o=>o.OrderDate).ToList();
2022-02-23