LINQ sélectionnez en C# dictionnaire
J'ai à côté de dictionnaire en C#
Dictionary<string, object> subDictioanry = new Dictionary<string, object>();
List<Dictionary<string, string>> subList = new List<Dictionary<string, string>>();
subList.Add(new Dictionary<string, string>(){
{"valueLink", "link1"},
{"valueTitle","title1"}
});
subList.Add(new Dictionary<string, string>(){
{"valueLink", "link2"},
{"valueTitle","title2"}
});
subList.Add(new Dictionary<string, string>(){
{"valueLink", "link3"},
{"valueTitle","title3"}
});
subDictioanry.Add("title", "title");
subDictioanry.Add("name", "name");
subDictioanry.Add("fieldname1", subList);
Dictionary<string, object> exitDictionary = new Dictionary<string, object>();
exitDictionary.Add("first", subDictioanry);
exitDictionary.Add("second", subDictioanry);
Est-il possible d'obtenir toutes "valueTitle" avec l'aide de LINQ choisir?
Mise à JOUR:
Désolé, je devrais l'écrire d'abord - j'ai besoin d'obtenir le résultat de exitDictionary, pas de sous-liste
- Ce serait plus facile à comprendre si vous avez utilisé des classes au lieu de dictionnaires. Juste pour dire.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la recherche par le
fieldname1
valeur, essayez ceci:Si vous êtes à la recherche par le type de la valeur dans le
subDictionary
(Dictionary<string, object>
explicitement), vous pouvez faire ceci:À la fois des solutions de rechange au retour:
Un autre moyen serait d'abord aplatir la liste avec un
SelectMany
:Ce sera le retour de toutes les valeurs correspondant à votre clé
valueTitle
kvp
ne serait pas unKeyValuePair
, il serait unDictionary<string, string>
. Il vous manque unSelectMany
pour aplatir la liste.