0

私は2つのクラスを持っています

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

これは 1 つのオプションですが、唯一のオプションではありません。クラス Y に public または internal getter を追加します。

public IEnumerable<X> TestList{get{return testList.OrderBy(x=>x.title);}}

Y のリストを取得するときは、名前で並べ替えることができます。

myList.OrderBy(y=>y.name);

Y のリストを表示するなど、どのような処理を行っていても、Y.name を表示し、TestList 内の foreach X で X.title がソートされます。

またはその2番目のゲッターがなくても:

myList.OrderBy(y=>y.name).Select(y=>new{y.name, testList=y.testList.OrderBy(t=>t.title)}).Dump();
于 2012-09-18T15:45:30.240 に答える