LINQ: à l'Ordre, En nombre, des Éléments Uniques dans la Liste des<string>

J'ai une liste d'identifiants correctement stocké dans une Liste<>. J'ai maintenant besoin de Groupe de cette liste et d'obtenir un comptage du nombre d'occurrences triés dans l'ordre décroissant.

Exemple:

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

Donnerait:

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

Ce serait facile, en TSQL, mais je voudrais éviter le serveur aller-retour inutiles, tableaux, etc. si cela est possible.

Merci d'avance.

Mise à jour: Le VB.NET conversion pour Ralph Shillington la réponse ci-dessous:

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

result.Dump()
Vous mentionnez T-SQL... Tu veux dire, toutes ces données sont dans la base de données? Pourquoi ne pas chercher déjà regroupés et triés? Ou suis-je malentendu quelque chose?

OriginalL'auteur Brad M | 2011-02-08