我已经定义了如下类型:
public class myType
{
public string firstName { get; set; }
public string middleName { get; set; }
public string lastName { get; set; }
}
我有IEnumerable<myType>
。
我想使用.OrderBy()
扩展来对myType列表进行排序,如下所示。
对象应按姓氏排序。如果姓氏相同,则应按名字顺序排列。如果名字相同,则应按中间名排列。
我该怎么做?
答案 0 :(得分:17)
var qry = items.OrderBy(x => x.lastName).ThenBy(x => x.firstName)
.ThenBy(x => x.middleName);
或LINQ语法:
var qry = from x in items
orderby x.lastName, x.firstName, x.middleName
select x;
答案 1 :(得分:7)
myList.OrderBy(t => t.lastName).ThenBy(t => t.firstName).ThenBy(t => t.middleName)
此外,每个OrderBy
和ThenBy
都有Descending
版本,因此OrderByDescending
和ThenByDescending