Я делал это сначала, чтобы вернуть определенный набор узлов под родительским узлом, у которого id был равен 1, что фантастически работало.
IEnumerable<XElement> world1 = LevelData.root.
Elements("world").
Where(element => (int?)element.Attribute("id") == 1);
Но мне нужно было сделать это несколько раз, и у каждого был собственный экземпляр, поэтому я решил поместить их в список, но он даже не компилируется, сообщая мне об ошибке CS0266:
Невозможно неявно преобразовать тип System.Collections.Generic.IEnumerable в System.Collections.Generic.List>. Существует явное преобразование (вам не хватает приведения?)
List<IEnumerable<XElement>>[] World = new List<IEnumerable<XElement>>[noofworlds];
foreach (List<IEnumerable<XElement>> wn in World)
{
Debug.WriteLine("World: "+w);
//this will make a list of all the nodes (elements) within the world specified by the id tag
World[w] = LevelData.Root.Elements("world").Where(element => (int?)element.Attribute("id") == 1);//with id == to i
w++;
}
Итак, я попытался добавить приведение List<IEnumerable<XElement>>
непосредственно перед LevelData.root.
, но затем получил недопустимое исключение. Я у кирпичной стены не знаю, куда идти. Любой совет?
World
представляет собой массив списковIEnumerable
изXElement
. Я почти уверен, что ты никогда не захочешь этого делать. - person juharr   schedule 12.02.2013