Допустим, у меня есть список целых. Я добавляю несколько значений:
list.Add(5);
list.Add(5);
list.Add(27);
list.Add(3);
list.Add(4);
list.Add(4);
list.Add(29);
list.Add(3);
Как получить 3 большинство встречающихся чисел ? Вот так: 5, 3 и 4.
Я пробовал:
public static IEnumerable<T> Mode<T>(this IEnumerable<T> input)
{
var dict = input.ToLookup(x => x);
if (dict.Count == 0)
return Enumerable.Empty<T>();
var maxCount = dict.Max(x => x.Count());
return dict.Where(x => x.Count() == maxCount).Select(x => x.Key);
}
Но мне возвращается только один номер.