我正在尝试将 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。我不确定我做错了什么。
我想将 XML 转换为,List<Test>
以便我可以随机重新排列对象。我打算只使用 int[] 数组并按“ID”排序,但我不知道数组的实际长度并想动态分配它,所以我不得不做一个list<>
. 我愿意接受其他实现这一目标的建议。