什麼是最符合要求的結果的最有效途徑?我正在使用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
什麼是最符合要求的結果的最有效途徑?我正在使用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 ordered = list
.GroupBy(x => x)
.OrderByDescending(g => g.Count())
.Select(g => g.Key);
標記了您的答案,因爲這是第一個答案。由於我正在處理List對象,所以最後應該有一個「.ToList()」。除此之外,你和Darin的工作都很棒! – Ricketts
你可以組項目,然後通過計數各組命令他們:
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);
爲什麼這個downvote? – Ricketts
我沒有倒下,但我猜那個低估了你的問題的人是因爲缺乏你的努力。 –
我付出了很多努力,我不認爲有必要展示我的荒謬循環來找出訂單,因爲我知道這是錯誤的。 – Ricketts