[英]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.