[英]XElement to List in c#
我想将XElement转换为我的对象列表。 我有“汽车”对象,并在帮助函数中创建了XElement。当我用linq转换它时,我得到一个空列表。 这是我写的:
public class Car
{
public int row{ get; set; };
public int seat{ get; set; }
public Car()
{
}
}
public static void help()
{
XElement root = new XElement("Car",
new XElement("seat",
new XElement("row", "4"),
new XElement("Chair", "2")),
new XElement("seat",
new XElement("row", "3"),
new XElement("Chair", "2")),
new XElement("seat",
new XElement("row", "5"),
new XElement("Chair", "2"))
);
List<Seat> a = root.Elements("Car").Select(s=>s.Element("seat")).Select(sv => new Car()
{
row= (int)sv.Element("row"),
seat= (int)sv.Element("Chair")
}).ToList();
}
List<Car> list = root.Elements("seat").Select(sv => new Car()
{
row = (int)sv.Element("row"),
seat = (int)sv.Element("Chair")
}).ToList();
使用root
您已经在Car
元素内。
请注意,您可以创建完整的XDocument
:
var doc = new XDocument(root);
List<Car> list2 = doc.Elements("Car").Elements("seat").Select(sv => new Car()
{
row = (int)sv.Element("row"),
seat = (int)sv.Element("Chair")
}).ToList();
这样, doc
将在Car
元素“外部”。
您甚至可以:
List<Car> list3 = doc.Root.Elements("seat").Select(sv => new Car()
{
row = (int)sv.Element("row"),
seat = (int)sv.Element("Chair")
}).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.