[英]XElement to List in c#
I want to convert XElement to my Object List. 我想将XElement转换为我的对象列表。 I have "Car" object and in help function i create XElement When i convert it with linq i get empty List.
我有“汽车”对象,并在帮助函数中创建了XElement。当我用linq转换它时,我得到一个空列表。 here is what i wrote:
这是我写的:
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();
With root
you are already "inside" the Car
element. 使用
root
您已经在Car
元素内。
Note that you could create a full XDocument
: 请注意,您可以创建完整的
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();
In this way, doc
would be "outside" the Car
element. 这样,
doc
将在Car
元素“外部”。
You could then even: 您甚至可以:
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.