2012-02-03 9 views
1

オブジェクトの配列があり、XMLファイルに渡したいと思います。属性IDのOjects欠如は、実際には配列の形式は次のとおりです。XML文書で送信されたオブジェクトに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から始まり、増加に付与する、あります1つのオブジェクトごとに?

のxml elemntsの所望の形態は、次のようになります。解決策は1つののみLINQクエリのconstistならばそれは理想的である

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

</People> 

答えて

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) 
         ) 
        ) 
       ) 
      ); 
関連する問題