我知道在C#中,從列表中獲取一個項目可以使用FirstOrDefault()或其他函數。我正在尋找一個功能可以從列表中獲取大多數呈現的項目。如何在c#列表中獲取大多數呈現的項目?
例如:
{ "a" , "a" , "a" , "b" }.MostPresents() => "a"
有沒有在C#中的默認功能(asp.net 4.0)這個?
我知道在C#中,從列表中獲取一個項目可以使用FirstOrDefault()或其他函數。我正在尋找一個功能可以從列表中獲取大多數呈現的項目。如何在c#列表中獲取大多數呈現的項目?
例如:
{ "a" , "a" , "a" , "b" }.MostPresents() => "a"
有沒有在C#中的默認功能(asp.net 4.0)這個?
var MostCommonItem = list.GroupBy(item => item)
.OrderByDescending(g => g.Count())
.Select(g => g.Key).First();
當你可以在'O(n)'中完成時,排序使得這個'O(n log n)'。 – jason 2012-01-04 21:19:07
好點。如果這是一個巨大的名單,複雜性將確定。發揮一個因素。 – 2012-01-04 21:20:51