我首先这样做是为了在 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.
但后来我得到了一个无效的演员异常。我在一块砖墙上去哪里。有什么建议吗?