我有两节课
public class X
{
string title;
}
public class Y
{
string name;
IList<X> testList;
}
我有一个如下列表
IList<Y> myList = new List<Y>();
我想根据名称和标题对 myList 进行排序
我该怎么做?
试试这样的,
var sorted = lstY.OrderBy(c => c.name).ToList().Select(d => { d.testList.OrderBy(f => f.title); return d; });
myList.OrderBy(x => x.name).ThenBy(y => y.testList.Min(z=>z.title));
这是一种选择,但不是唯一的选择。向 Y 类添加公共或内部 getter:
public IEnumerable<X> TestList{get{return testList.OrderBy(x=>x.title);}}
检索 Y 列表时,显然可以按名称对其进行排序:
myList.OrderBy(y=>y.name);
对于您正在执行的任何处理,例如显示 Y 的列表,您将在 TestList 中显示 Y.name 和 foreach X,X.title 将被排序。
甚至没有第二个吸气剂:
myList.OrderBy(y=>y.name).Select(y=>new{y.name, testList=y.testList.OrderBy(t=>t.title)}).Dump();