以下代码的Linq to XML的等价物是什么:
public List<listing> GetList()
{
List<listing> listings = new List<listing>();
if(File.Exists(this.XmlFilePath))
{
DataSet ds = new DataSet();
ds.ReadXml(this.XmlFilePath);
DataTable dt = ds.Tables["listing"];
for(int row = 0; row < dt.Rows.Count; row++)
{
listing listing = new listing();
listing.A = dt.Rows[row]["A"].ToString();
listing.B = dt.Rows[row]["B"].ToString();
listing.C = dt.Rows[row]["C"].ToString();
listing.D= dt.Rows[row]["D"].ToString();
listing.E = dt.Rows[row]["E"].ToString();
listings.Add(listing);
}
}
return listings;
}
答案 0 :(得分:7)
public List<Listing> GetList()
{
if (File.Exists(this.xmlFilePath))
{
XDocument doc = XDocument.Load(this.xmlFilePath);
var listings = from row in doc.Root.Elements("listing")
select new Listing
{
A = (string)row.Element("A"),
B = (string)row.Element("B"),
C = (string)row.Element("C"),
D = (string)row.Element("D"),
E = (string)row.Element("E")
};
return listings.ToList();
}
else
{
return new List<Listing>();
}
}