1

私が探している結果への最も効率的なパスは何ですか? ASP.NET 4.5 と C# を使用しています。

次のintリストがあるとします。

5,7,2,7,8,5,8,0,2,9,8,8,7

リストから重複を取り除き、各項目の出現回数順に並べたい。LINQ を使用Distinct()してアイテムを一意にできることはわかっていますが、出現数で並べ替えるにはどうすればよいですか? これは、上記の例の望ましい結果です。

8,7,5,2,0,9

4

2 に答える 2

4

アイテムをグループ化し、各グループの数で並べ替えることができます。

var items = new[] { 5, 7, 2, 7, 8, 5, 8, 0, 2, 9, 8, 8, 7 };
var result = items
    .GroupBy(x => x)
    .OrderByDescending(x => x.Count())
    .Select(x => x.Key);
于 2013-02-02T18:58:24.793 に答える
1
var ordered = list
    .GroupBy(x => x)
    .OrderByDescending(g => g.Count())
    .Select(g => g.Key);
于 2013-02-02T18:58:20.577 に答える