Abe*_*ler 7 .net c# sorting list
假设我有一个Person对象列表:
class person
{
int id;
string FirstName;
string LastName;
}
Run Code Online (Sandbox Code Playgroud)
我如何按LastName成员对此列表进行排序?
List<Person> myPeople = GetMyPeople();
myPeople.Sort(/* what goes here? */);
Run Code Online (Sandbox Code Playgroud)
Dan*_*Tao 16
List<T>.Sort
将就地排序列表.如果那就是你想要的,那就甜蜜了:使用带Comparison<T>
代表的重载:
List<Person> myPeople = GetMyPeople();
myPeople.Sort((x, y) => x.LastName.CompareTo(y.LastName));
Run Code Online (Sandbox Code Playgroud)
如果您不想修改实际列表但希望按排序顺序枚举其内容,那么,正如其他人所建议的那样,请使用LINQ扩展方法OrderBy
(.NET 3.5及更高版本).这个方法可以采用一个简单的Func<T, TKey>
选择器,并通过这个选择器......你知道,选择的键来排序.
List<Person> myPeople = GetMyPeople();
var orderedByLastName = myPeople.OrderBy(p => p.LastName);
Run Code Online (Sandbox Code Playgroud)
tan*_*ius 14
在C#3.0下,您可以使用以下linq语句:
var sortedEnumerable = myPeople.OrderBy( p => p.LastName );
Run Code Online (Sandbox Code Playgroud)