私は最初にこれを行って、親ノードの下に 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.
が、無効なキャスト例外が発生します。私はどこへ行くのか、レンガの壁にいます。何かアドバイス?