[英]Sorting an IEnumerable<type> by three fields
我已经定义了如下类型:
public class myType
{
public string firstName { get; set; }
public string middleName { get; set; }
public string lastName { get; set; }
}
我有一个IEnumerable<myType>
。
我想使用.OrderBy()
扩展来对.OrderBy()
列表进行排序,如下所示。
对象应按姓氏排序。 如果姓氏相同,则应按名字顺序排列。 如果名字相同,则应按中间名排序。
我该怎么做呢?
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;
myList.OrderBy(t => t.lastName).ThenBy(t => t.firstName).ThenBy(t => t.middleName)
此外,每个OrderBy
和ThenBy
都有一个Descending
Version,所以OrderByDescending
和ThenByDescending
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.