C# 要在c中列出的元素#

C# 要在c中列出的元素#,c#,linq,xelement,C#,Linq,Xelement,我想将XElement转换为我的对象列表。 我有“Car”对象,在帮助功能中我创建了XElement 当我用linq转换它时,我得到一个空列表。 以下是我写的: public class Car { public int row{ get; set; }; public int seat{ get; set; } public Car() { } } public static void help() { XElement r

我想将XElement转换为我的对象列表。 我有“Car”对象,在帮助功能中我创建了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();
}
公车
{
公共int行{get;set;};
公共int席位{get;set;}
公共汽车
{
}
}
公共静态void帮助()
{
XElement根=新XElement(“汽车”,
新XElement(“座椅”,
新条款(“第行”、“第4行”),
新XElement(“主席”、“2”),
新XElement(“座椅”,
新条款(“第3行”),
新XElement(“主席”、“2”),
新XElement(“座椅”,
新XElement(“第行”、“第5行”),
新XElement(“椅子”、“2”))
);
列表a=root.Elements(“Car”)。选择(s=>s.Element(“seat”))。选择(sv=>newcar()
{
行=(int)sv.Element(“行”),
座椅=(内部)sv.元素(“座椅”)
}).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();
List list3=doc.Root.Elements(“seat”)。选择(sv=>newcar()
{
行=(int)sv.Element(“行”),
座椅=(内部)sv.元素(“座椅”)
}).ToList();
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();
List<Car> list3 = doc.Root.Elements("seat").Select(sv => new Car()
{
    row = (int)sv.Element("row"),
    seat = (int)sv.Element("Chair")
}).ToList();