我有一个对象数组,我想将它们传递给XML文件。 Ojects缺少属性ID,实际上数组的形式是:
var people = new[]{
new {Name="James", Age="22", Company="FF"},
new {Name="Susan", Age="31", Company="PK"},
new {Name="Peter", Age="24", Company="TF"},
}
有没有办法在xml文件中传递它们,向每个文件授予一个从1开始的ID,并为每个对象增加1?
xml元素的所需形式应如下所示:
<People>
<Person ID="1">
<Name>James</Name>
<Age>22</Age>
<Company>FF</Company>
....
</People>
如果解决方案仅包含一个LINQ查询,那将是理想的。
答案 0 :(得分:2)
var result = new XDocument(
new XElement("People",
people.Select((p, i) =>
new XElement("Person",
new XAttribute("ID", i + 1),
new XElement("Name", p.Name),
new XElement("Age", p.Age),
new XElement("Company", p.Company)
)
)
)
);