Как получить частоту элементов из списка в С#

Я пытаюсь получить частоту элементов, хранящихся в списке.

Я сохраняю следующие идентификаторы в своем списке

ID
1
2
1
3
3
4
4
4

Я хочу следующий вывод:

ID| Count
1 | 2
2 | 1
3 | 2
4 | 3

В java вы можете сделать следующее.

for (String temp : hashset) 
    {
    System.out.println(temp + ": " + Collections.frequency(list, temp));
    }

Источник: http://www.mkyong.com/java/how-to-count-duplicated-items-in-java-list/

Как получить частоту списка в С#?

Спасибо.


person Huzaifa    schedule 02.07.2013    source источник


Ответы (1)


Вы можете использовать LINQ

var frequency = myList.GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count());

Это создаст объект Dictionary, где ключ — это ID, а значение — это количество раз, когда идентификатор появляется.

person keyboardP    schedule 02.07.2013