9
votes

Valeurs distinctes dans le dictionnaire

J'essaie de boucler sur des valeurs distinctes sur une liste de dictionnaire:

J'ai donc un dictionnaire de paires de valeur clé.

Comment puis-je obtenir simplement les valeurs distinctes des clés de chaîne de la liste de dictionnaire?


5 commentaires

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. :)


4 Réponses :


31
votes
foreach(var key in mydict.Keys)
{
  // deal with it
}

1 commentaires

Cela semble être le plus proche de ce que Jerryb pourrait avoir l'intention de demander.



2
votes

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() )
{
}


2 commentaires

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.



9
votes

Les clés sont distinctes dans un dictionnaire. par définition .

SO MYDICT.KEYS est une liste distincte de clés.


4 commentaires

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.



0
votes

Si le dictionnaire est défini comme suit:

var distinctDictionaryValues = theDictionary.Values.Distinct(); // .ToList();


0 commentaires