处理全部,
假设我有一个XML文件,需要将其解析为对象(DTO)。例:
<Root>
<Item>
<X>1</X>
<Y>2</Y>
<Item>
</Root>
我有一个DTO对象:
public class Item
{
public int X{get;set;}
public int Y{get;set;}
public int Z{get;set;}
}
要创建Item对象,我需要知道X和Y,然后将Z = X * Y设置为
我使用LINQ将XML解析为对象:
XDocument reportDoc = XDocument.Load(@"Report.xml");
var query = from item in reportDoc.Element("Root").Descendants()
select new Item()
{
X = Convert.ToInt32(item.Element("X").Value),
Y = Convert.ToInt32(item.Element("Y").Value)
// Z = X*Y -> I can't do this by this statement
};
请帮助我如何在LINQ select语句中直接为Z属性设置值。谢谢。
最佳答案
您可以使用let
子句声明中间变量:
XDocument reportDoc = XDocument.Load(@"Report.xml");
var query = from item in reportDoc.Element("Root").Descendants()
let x = Convert.ToInt32(ticket.Element("X").Value)
let y = Convert.ToInt32(ticket.Element("Y").Value)
select new Item()
{
X = x,
Y = y
Z = x * y
};
关于c# - 如何直接在LINQ select语句中设置DTO的属性值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8908868/