2015-01-25 2 views
0

У меня есть, например, этот список.Как получить счет каждого отдельного элемента в общем списке в C#

List<int> numbers = new List<int>() { 1, 1, 2, 2, 3, 3, 4 }; 

И я хочу получить еще один список с подсчетом каждого отдельного элемента в этом списке, так что-то вроде этого 2,2,2,1. Я предполагаю, что это можно сделать с помощью foreach, но возможно ли это проще (возможно, LINQ)? Благодарю.

+1

Выполните группировку элементов списка –

ответ

6
var counts = numbers.GroupBy(x => x) 
        .Select(g => new { Number = g.Key, Count = g.Count() }) 
        .ToList(); 

Вместо анонимных объектов, вы можете использовать словарь слишком

var counts = numbers.GroupBy(x => x) 
        .ToDictionary(x => x.Key, x => x.Count()); 
Смежные вопросы