为在XML文档中传输的对象分配ID

时间:2012-02-03 14:58:52

标签: c# xml arrays linq

我有一个对象数组,我想将它们传递给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查询,那将是理想的。

1 个答案:

答案 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)
                         )
                     )
                 )
             );