Hainesy - 从您对 Vinny 帖子的评论来看,我认为您错过了他的观点... [我没有直接将此作为您问题的答案,我只是详细说明 Vinny 要澄清的观点任何可能的混淆。]
考虑这个对象:
public class Person
{
public string FirstName;
public string MiddleInitial;
public string LastName;
public DateTime DateOfBirth { get; set; }
public int Age
{
get
{
return (int)DateTime.Today.Subtract(DateOfBirth).TotalDays / 365;
}
}
}
现在,假设我有一个名为 People 的 Person 列表
var people = new List<Person>();
我的名单上有一大堆人。
var sortedByLastName = people.OrderBy(o => o.LastName);
var sortedByFirstName = people.OrderBy(o => o.FirstName);
var sortedByAge = people.OrderBy(o => o.Age);
var sortedByAgeDesc = people.OrderByDescending(o => o.Age);
var sortedByLastThenFirst = people.OrderBy(o => o.LastName).ThenBy(o => o.FirstName);
这适用于复杂的对象。如果我们有一些原始类型的列表,比如字符串:
var strings = new List<string>();
我想根据它们本身对它们进行排序 - 即不是按我的对象的某些属性
var sorted = strings.OrderBy(s => s);
这将对对象进行排序。如果您对实现了 IComparable 的复杂对象进行排序以按其默认比较器排序,您也可以使用相同的想法。
EntitySet 可以以类似的方式排序,无论是对于基本类型还是复杂对象。