我在Framework 3.5上使用C#。我正在寻找快速排序通用List<>。为了这个例子,我们可以说我有一个Person类型的列表,其中包含一个lastname属性。我将如何使用lambda表达式对此列表进行排序?
List<Person> people = PopulateList();
people.OrderBy(???? => ?????)
是否需要列表进行排序,或只是列表内容的有序序列?后者更容易:
var peopleInOrder = people.OrderBy(person => person.LastName);
要排序,你需要一个IComparer<Person>或一个Comparison<Person>。为此,您可能希望ProjectionComparer在MiscUtil中考虑。
如果你的意思是一个就地排序(即列表更新):
people.Sort((x, y) => string.Compare(x.LastName, y.LastName));
如果你的意思是新的名单:
var newList = people.OrderBy(x=>x.LastName).ToList(); // ToList optional