2012-02-03 61 views
1

我有一个对象数组,我想将它们传递给一个XML文件。所述Ojects缺乏的属性ID,实际上该阵列的形式是:将ID分配给在XML文档中传输的对象

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文件中,赋予到它们中的每一个的ID从1开始,并增加了1为每个对象?

的XML elemnts的期望形式应该是这样的:

<People> 
<Person ID="1"> 
<Name>James</Name> 
<Age>22</Age> 
<Company>FF</Company> 
.... 

</People> 

这将是理想的,如果该解决方案将constist一个只有LINQ查询。

回答

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) 
         ) 
        ) 
       ) 
      ); 
相关问题