Dan*_*don 6 c# sorting ienumerable
我已经定义了如下类型:
public class myType
{
public string firstName { get; set; }
public string middleName { get; set; }
public string lastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个IEnumerable<myType>.
我想使用.OrderBy()extention来对myType列表进行排序,如下所示.
对象应按姓氏排序.如果姓氏相同,则应按名字顺序排列.如果名字相同,则应按中间名排序.
我该怎么做呢?
Mar*_*ell 17
var qry = items.OrderBy(x => x.lastName).ThenBy(x => x.firstName)
.ThenBy(x => x.middleName);
Run Code Online (Sandbox Code Playgroud)
或者在LINQ语法中:
var qry = from x in items
orderby x.lastName, x.firstName, x.middleName
select x;
Run Code Online (Sandbox Code Playgroud)
myList.OrderBy(t => t.lastName).ThenBy(t => t.firstName).ThenBy(t => t.middleName)
Run Code Online (Sandbox Code Playgroud)
此外,每个OrderBy并ThenBy有一个Descending版本,所以OrderByDescending并ThenByDescending