je crée un objet IEnumerable qui ne contient que les nœuds que je veux partir d'un fichier xml:Linq à Xml: sélection d'éléments si une valeur d'attribut est égale à une valeur de noeud dans un IEnumerable <XElement>
IEnumerable<XElement> rosters = XDocument.Load("roster.xml")
.Elements("rosterlist")
.Elements("roster")
.Where(w => w.Element("division")
.Value
.Equals("SUPER AWESOME DIVISION"));
Il est donc une collection de ceux-ci:
<rosterlist>
<roster>
<userid>1</userid>
<name></name>
<etc></etc>
</roster>
<roster>
<userid>2</userid>
<name></name>
<etc></etc>
</roster>
</rosterlist>
Je veux saisir uniquement les utilisateurs dont l'attribut userid
est également un nœud userid
dans la collection rosters
.
IEnumerable<XElement> users = XDocument.Load("user.xml")
.Elements("userlist")
.Elements("user")
.Where(w => rosters.Elements("userid")
.Contains(w.Attribute("userid").Value));
Mais il me donne une erreur:
Les arguments de type pour la méthode 'System.Linq.Enumerable.Contains (System.Collections.Generic.IEnumerable, Tsource)' ne peut pas être déduite de la usage. Essayez de spécifier explicitement les arguments de type.
Quel est le problème avec mon approche?