Ceci est mon idée pour le code (la requête Linq peut-elle remplir directement l'objet dictionnaire?).Comment faire une itération sur un ensemble de résultats d'élément XML à partir d'une requête Linq
XElement doc = XElement.Load(data.xml);
string Element = "KeyNode";
string SearchString = "Dominion";
Dictionary<string, string> QueryData = new Dictionary<string, string>();
var query = from child in doc.Descendants(Element)
where SearchString == child.Value
select pn.Parent.Elements();
foreach(XElement x in query)
{
QueryData.Add(x.Name.ToString(),x.Value);
}
Merci pour la partie du dictionnaire, mais pour l'essayer, j'ai besoin d'itérer le résultat initial. – Zion
C'est tout! les rebelles sont là et je suis sûr que Skywalker est avec eux! Merci beaucoup, l'aplatissement a fait l'affaire. Si vous pouvez expliquer s'il vous plaît pourquoi mon resultset a donné des ienumerables imbriqués? – Zion
Imaginez que votre instruction select était 'select child.Name.ToString()'. Vous obtiendrez un 'IEnumerable'. Votre véritable instruction select renvoie une séquence d'éléments (tous les enfants du parent). Puisque le résultat final d'une requête est une séquence des valeurs produites par chaque appel à l'instruction select, et chaque instruction select renvoie une séquence d'éléments, vous vous retrouvez avec une séquence d'une séquence d'éléments. –