2009-02-18 6 views
3

Existe-t-il un moyen simple d'extraire uniquement les valeurs uniques d'une liste de chaînes en C#? Mon google-fu me manque aujourd'hui.uniq in C#

(Je sais que je peux les mettre dans une autre structure et les retirer à nouveau.) Je cherche stupidement-facile, comme la méthode .uniq de Ruby.C# a sanglant bien tout le reste, donc j'utilise probablement le mauvais synonyme.)

Plus précisément, cela vient de Linq, donc si Linq avait un moyen intégré de sélectionner uniquement des chaînes uniques, ce serait encore plus cool.

Répondre

9
List<string> strings = new string[] { "Hello", "Hello", "World" }.ToList(); 

strings = strings.Distinct().ToList(); 
+0

mais mec ... pas de boom shaka-laka ?! – ljs

+0

Vous voyez que j'aime juste BOOOM! Mais je n'étais pas sûr si je devrais .. = P –

6

Dans .NET 3.5: -

var strings = new List<string> { "one", "two", "two", "three" }; 
var distinctStrings = strings.Distinct(); // IEnumerable<string> 
var listDistinctStrings = distinctStrings.ToList(); // List<string> 

Boom-Shaka Laka!

+0

Vous et vos exemples verbeux, où est le cycle sale redondant gaspiller du code comme le mien!? –

+0

J'ai dépensé l'énergie que j'aurais pu dépenser en écrivant «boom shaka-laka»! Il va presque sans dire ;-) – ljs

+0

+1 pour les commentaires qui me font sourire. – Nescio