Как сгруппировать с помощью LINQ, а затем получить значение самой большой группы

Вот что у меня есть:

  var bestReason =
   from p in successfulReasons
   group p by p.Reason into g
   select new { Excuse = g.Key, ExcuseCount = g.Count() };

Что мне нужно сделать сейчас, так это вернуть одну причину, которая является наилучшей причиной, определенная по которым были успешными в прошлом.

Пример данных:

ID,Reason
---------
0,Weather
1,Traffic
2,Illness
3,Weather
4,Traffic
5,Traffic
6,Pirates

должен возвращать "Traffic"

Хотел бы сделать это все в одном операторе LINQ, если возможно.

Спасибо.

РЕДАКТИРОВАТЬ: Если есть 7 пиратских атак и 7 дорожно-транспортных происшествий, я могу вернуть любой из них (первый в алфавитном порядке будет хорошо).

7
задан Slightly A. 26 January 2011 в 22:41
поделиться