私が探している結果への最も効率的なパスは何ですか? 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
アイテムをグループ化し、各グループの数で並べ替えることができます。
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);
var ordered = list
.GroupBy(x => x)
.OrderByDescending(g => g.Count())
.Select(g => g.Key);