0

我有两节课

public class X
{
    string title;
}

public class Y
{
    string name;
    IList<X> testList;
}

我有一个如下列表

IList<Y> myList = new List<Y>();

我想根据名称和标题对 myList 进行排序

我该怎么做?

4

3 回答 3

1

试试这样的,

 var sorted = lstY.OrderBy(c => c.name).ToList().Select(d => { d.testList.OrderBy(f => f.title); return d; });
于 2012-09-18T15:37:54.197 回答
0
myList.OrderBy(x => x.name).ThenBy(y => y.testList.Min(z=>z.title));
于 2012-09-18T15:39:31.717 回答
0

这是一种选择,但不是唯一的选择。向 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();
于 2012-09-18T15:45:30.240 回答