按字母顺序排序的List

15 浏览
0 Comments

按字母顺序排序的List

我正在使用 Framework 3.5 的 C#。我希望快速地对一个通用的 List 进行排序。为了举例说明,假设我有一个 Person 类型的 List,其中有一个 lastname 属性。我该如何使用 lambda 表达式对这个 List 进行排序?

List people = PopulateList();
people.OrderBy(???? => ?????)

admin 更改状态以发布 2023年5月22日
0
0 Comments

您需要列表在原地排序,还是仅需要列表内容的有序序列? 后者更容易:

var peopleInOrder = people.OrderBy(person => person.LastName);

要在原地排序,您需要一个IComparerComparison。 为此,您可以考虑MiscUtil中的ProjectionComparer

(我知道我一直在提到MiscUtil - 它只是一直保持相关...)

0
0 Comments

如果您指的是地点排序(即列表被更新):

people.Sort((x, y) => string.Compare(x.LastName, y.LastName));

如果您指的是一个新列表:

var newList = people.OrderBy(x=>x.LastName).ToList(); // ToList optional

0