LINQ: Порядок по количеству уникальных элементов в списке

У меня есть список идентификаторов, правильно сохраненных в List <>. Теперь мне нужно сгруппировать этот список и подсчитать количество вхождений, отсортированных по убыванию.

Пример:

List<string> aryIDs = new List<string>;
aryIDs.Add("1234");
aryIDs.Add("4321");
aryIDs.Add("3214");
aryIDs.Add("1234");
aryIDs.Add("4321");
aryIDs.Add("1234");

Будет выдавать:

"1234", 3
"4321", 2
"3214", 1

Это было бы легко в TSQL, но я бы хотел по возможности избежать обхода сервера, ненужных таблиц и т. Д.

Заранее спасибо.

Обновление: VB.NET преобразование для ответа Ральфа Шиллингтона ниже:

Dim result = From id In aryIDs _
                     Group id By id Into Group _
                     Order By Group.Count() Descending _
                     Select id, Count = Group.Count()

result.Dump()
15
задан Brad M 8 February 2011 в 18:38
поделиться