puedo crear un objeto IEnumerable que solo contiene los nodos que quiero de un archivo xml:LINQ to XML: la selección de los elementos si un valor de atributo es igual a un valor de nodo en un IEnumerable <XElement>
IEnumerable<XElement> rosters = XDocument.Load("roster.xml")
.Elements("rosterlist")
.Elements("roster")
.Where(w => w.Element("division")
.Value
.Equals("SUPER AWESOME DIVISION"));
Así que es una colección de éstos:
<rosterlist>
<roster>
<userid>1</userid>
<name></name>
<etc></etc>
</roster>
<roster>
<userid>2</userid>
<name></name>
<etc></etc>
</roster>
</rosterlist>
Quiero agarrar sólo los usuarios donde el atributo userid
es también un nodo userid
dentro de la colección rosters
.
IEnumerable<XElement> users = XDocument.Load("user.xml")
.Elements("userlist")
.Elements("user")
.Where(w => rosters.Elements("userid")
.Contains(w.Attribute("userid").Value));
Pero es que me da un error:
Los argumentos de tipo para el método 'System.Linq.Enumerable.Contains (System.Collections.Generic.IEnumerable, TSource)' no puede deducirse de la uso. Intente especificar los argumentos de tipo explícitamente.
¿Qué pasa con mi enfoque?