Ich erstelle ein IEnumerable-Objekt, das nur die gewünschten Knoten aus einer Xml-Datei enthält:
IEnumerable<XElement> rosters = XDocument.Load("roster.xml")
.Elements("rosterlist")
.Elements("roster")
.Where(w => w.Element("division")
.Value
.Equals("SUPER AWESOME DIVISION"));
Es ist also eine Sammlung von diesen:
<rosterlist>
<roster>
<userid>1</userid>
<name></name>
<etc></etc>
</roster>
<roster>
<userid>2</userid>
<name></name>
<etc></etc>
</roster>
</rosterlist>
Ich möchte nur die Benutzer erfassen, bei denen die userid
Attribut ist auch ein userid
Knoten innerhalb der rosters
Sammlung.
IEnumerable<XElement> users = XDocument.Load("user.xml")
.Elements("userlist")
.Elements("user")
.Where(w => rosters.Elements("userid")
.Contains(w.Attribute("userid").Value));
Aber es wird ein Fehler angezeigt:
Die Typargumente für die Methode 'System.Linq.Enumerable.Contains(System.Collections.Generic.IEnumerable, TSource)' können nicht aus der Verwendung abgeleitet werden. Versuchen Sie, die Typargumente explizit anzugeben.
Was ist an meinem Ansatz falsch?