Подтвердить что ты не робот

Подсчет с использованием группы Linq

У меня есть объект, который выглядит так:

Notice 
{
    string Name,
    string Address 
}

В List<Notice> я хочу вывести все различное имя и сколько раз конкретное появляется в коллекции.

Например:

Notice1.Name="Travel"
Notice2.Name="Travel"
Notice3.Name="PTO"
Notice4.Name="Direct"

Мне нужен вывод

Travel - 2
PTO - 1
Direct -1

Я могу получить отличные имена с этим кодом, но, похоже, я не могу получить счет всех в 1 выражении linq

  theNoticeNames= theData.Notices.Select(c => c.ApplicationName).Distinct().ToList();
4b9b3361

Ответ 1

var noticesGrouped = notices.GroupBy(n => n.Name).
                     Select(group =>
                         new
                         {
                             NoticeName = group.Key,
                             Notices = group.ToList(),
                             Count = group.Count()
                         });

Ответ 2

Вариант ответа Leniel, используя различную перегрузку GroupBy:

var query = notices.GroupBy(n => n.Name, 
                (key, values) => new { Notice = key, Count = values.Count() });

В основном это просто вызывает вызов Select.