112 votes

Comment puis-je filtrer un dictionnaire en utilisant LINQ et le renvoyer dans un dictionnaire du même type

J'ai le dictionnaire suivant:

 Dictionary<int,string> dic = new Dictionary<int,string>();
dic[1] = "A";
dic[2] = "B";
 

Je souhaite filtrer les éléments du dictionnaire et réaffecter le résultat à la même variable:

 dic = dic.Where (p => p.Key == 1);
 

Comment puis-je renvoyer le résultat sous forme de dictionnaire du même type [ <int,string> ]?

J'ai essayé ToDictionary , mais ça ne marche pas.

Merci d'avance.

243voto

Jon Skeet Points 692016

ToDictionary est la voie à suivre. Il ne fonctionne - vous venez de l' utiliser correctement, probablement. Essaye ça:

 dic = dic.Where(p => p.Key == 1)
         .ToDictionary(p => p.Key, p => p.Value);
 

Cela dit, je suppose que vous voulez vraiment un filtre Where , car votre filtre actuel ne trouvera jamais qu'une seule clé ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X