定義済みのクラスを使用して XML ドキュメントを List<> に変換しようとしています
私の xml データセット TestData.xml
<Objects>
<Object ID="1">
<ItemOne>"Hickory"</ItemOne>
<ItemTwo>"Dickory"</ItemTwo>
<ItemThree>"Dock"</ItemThree>
</Object>
<Object ID="2">
<ItemOne>"The"</ItemOne>
<ItemTwo>"Mouse"</ItemTwo>
<ItemThree>"Went"</ItemThree>
</Object>
</Objects>
メインプログラム
class Program
{
static void Main(string[] args)
{
XElement TestData = XElement.Load("TestData.xml");
List<Test> myTest = new List<Test>(from d in TestData.Descendants("Objects")
select new Test(
d.Element("ItemOne").Value.ToString(),
d.Element("ItemTwo").Value.ToString(),
d.Element("ItemThree").Value.ToString()));
myTest.ForEach(i => Console.WriteLine("{0} {1} {2}", i.itemOne, i.itemTwo, i.itemThree));
Console.ReadLine();
}
}
データを形成しようとしているクラス
class Test
{
public string itemOne { get; set; }
public string itemTwo { get; set; }
public string itemThree { get; set; }
}
出たいです
Hickory Dickory Dock
The Mouse went
しかし、私は何も得られません。LINQ クエリがデータを見つけたように見えますが、それをList<Test>
myTest に割り当てることはありません。値はデバッガーで null として表示されます。何が間違っているのかわかりません。
List<Test>
オブジェクトをランダムに再配置できるように、XML を変換したいと考えています。int[]配列を使用して「ID」でソートするだけでしたが、配列の実際の長さがわからず、その場で割り当てたいので、list<>
. これを達成するための他の提案を受け入れます。