Bonjour,
Je n'arrive pas à avoir une méthdode simple pour avoir une liste de clés qui ont la même valeur dans un dictionnaire ?
Merci de votre aide
Bonjour,
Je n'arrive pas à avoir une méthdode simple pour avoir une liste de clés qui ont la même valeur dans un dictionnaire ?
Merci de votre aide
Tu voudrais chercher les clés qui correspondant à une valeur choisie?
Essayez ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public List<string> GetKeyList(Dictionary<string,object> dico, string lookUpKey) { List<string> keysList=new List<string>(); foreach(KeyValuePair<string,object> item in dico) { if(item.key == lookUpKey) { keysList.Add(item.key). } } return keysList; }
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Si tu veux dire , en gros, donnes moi les clés qui ont une valeur qui se trouve plus d'une fois dans le dictionnaire, voila un exemple :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var groupbyvalue = tondictionnaire .GroupBy(dico => dico.Value) .Where(g => g.Count() > 1).SelectMany(d => d);
C'est une base, il y a moyen d'améliorer dépendant de ce que tu veux exactement.
Evidemment, il faut que la comparaison (Méthode Equals()) entre les objets soit bonne pour qu'il fasse une comparaison correcte dans le grouping.
Ou alors, il utilise une notion d'égalité des clefs différente de celle du dictionnaire, mais dans ce cas c'est un problème de design et il ferait mieux d'utiliser par exemple une List<KeyValuePair<K,T>>, avec une implémentation spécifique de Equals, GetHashCode, etc ... sur 'K', et rechercher dans la liste via LINQ.
Partager