我想根据每个对象的Method
集合的第一个元素的OtherName
属性对Method2
个对象的集合进行排序。
public class Method
{
public IEnumerable<Method2> Method2{ get; set; }
}
public class Method2
{
public string OtherName {get;set;}
}
代码
// generate test data
var rnd = new Random();
var collection = Enumerable.Range(0, 5).Select(x => {
var m = new Method();
m.Method2 = new Method2[] { new Method2 { OtherName = rnd.Next(10).ToString() } };
return m;
});
// sort outer list by OtherName property of first element in inner list
// ??????
答案 0 :(得分:2)
在编写时,您想要这样:
使用内部列表的第一项进行外部列表的排序
var sorting = methodList.OrderBy(x => x.Method2.FirstOrDefault()?.OtherName).ToList();
答案 1 :(得分:1)
要按子列表中“第一”排序的项目进行排序,请使用First
:
var sorting = methodList.OrderBy(x => x.Method2
.OrderBy(n => n.Name)
.FirstOrDefault())
.ToList();
如果Method2
已经排序,则只需取出内部的'OrderBy'