1

最初に prop1 に基づいて次のリストを並べ替え、次に選択した prop2 値に基づいて並べ替えたいと思います。たとえば、prop1、次に値「project」を含む prop2、次に値「application」を含む prop2、次に値「core」を含む prop2 を使用してリストを昇順に並べ替えたいとします。

IList<Test> tests = new List<Test>
        {
            new Test{prop1 = "Name1", prop2="project235"},
            new Test{prop1 = "Name1", prop2="core222"},
            new Test{prop1 = "Name1", prop2="application33331"},
            new Test{prop1 = "Name1", prop2="project"},
            new Test{prop1 = "Name1", prop2="application21"},
            new Test{prop1 = "Name1", prop2="core1"},
            new Test{prop1 = "Name1", prop2="application"},

            new Test{prop1 = "Name2", prop2="application"},
            new Test{prop1 = "Name2", prop2="core"},
            new Test{prop1 = "Name2", prop2="project"}
        };

予想される出力は次のようになります

Name1 プロジェクト

名前1 project235

お名前1 お申し込み

名前1 アプリケーション21

名前1 アプリケーション33331

名前1 コア1

名前1 core222

Name2 プロジェクト

Name2 アプリケーション

Name2コア

前もって感謝します!!!!

4

2 に答える 2

0
 var result = tests.GroupBy(x=>x.prop1)
                   .SelectMany(g=>g.GroupBy(x=>string.IsNullOrEmpty(x.prop2) ? 1
                                               x.prop2.StartsWith("project") ? 2 :
                                               x.prop2.StartsWith("application") ? 3 : 4)
                                   .OrderBy(x=>x.Key)
                                   .Select(a=>a.OrderBy(x=>x.prop2)));
于 2013-08-21T03:18:31.530 に答える