J'essaie de boucler sur des valeurs distinctes sur une liste de dictionnaire: p>
J'ai donc un dictionnaire de paires de valeur clé. p>
Comment puis-je obtenir simplement les valeurs distinctes des clés de chaîne de la liste de dictionnaire? p>
4 Réponses :
foreach(var key in mydict.Keys) { // deal with it }
Cela semble être le plus proche de ce que Jerryb pourrait avoir l'intention de demander.
Looping clés sur distinctes et faire quelque chose à chaque valeur ...
// you may need to pass Distinct an IEqualityComparer<TSource> // if default equality semantics are not appropriate... foreach( dictionary.Values.Distinct() ) { }
Les clés de dictionnaire sont déjà garantis distinctes. Pas besoin de l'appel LINQ.
@Reed: Ok, mais le LINQ est uniquement utilisé pour fabriquer des valeurs uniques, pas les clés.
Les clés sont distinctes dans un dictionnaire. par définition em>. p>
SO
Merde! J'ai totalement mal interprété la question. Je pensais qu'il voulait des valeurs distinctes.
La question est un peu déroutante. "Valeurs distinctes des clés de cordes"?
Jerryb a demandé "Comment puis-je obtenir juste les valeurs distinctes des clés de chaîne"
@Philippe Leybaert: Je suis d'accord; une question trompeuse. Je suppose que l'auteur devra se présenter et nous faire savoir ce qu'il voulait vraiment dire. De toute façon, +1 pour votre réponse.
Si le dictionnaire est défini comme suit:
var distinctDictionaryValues = theDictionary.Values.Distinct(); // .ToList();
Voulez-vous dire des valeurs distinctes? Si tel est le cas, la solution de Randolpho est correcte.
JERRYB: Il n'y a pas de dictionnaire C #. C'est un dictionnaire .NET.
@JerryB: C'est une distinction terriblement pédant - et à venir de moi, ça veut tout dire quelque chose! C # et .NET vont main dans la main. Leur utilisation ne fait pas un mauvais service à façon interchangeable VB, F # et IronPython.
@Randolpho: pensez que vous vouliez dire répondre à John Saunders ici, pas JerryB.
@Steven Sudit: Je pense que vous avez raison. :)