使用LINQ将元素读入字典对象

时间:2012-05-24 10:04:15

标签: c# xml linq

我使用传统的XmlReader将xml文档解析为字典?但是,我正在寻找不那么复杂的方法最小代码行。我有以下Xml文档

<Msg>
  <field id="0" value="0100"/>
  <field id="3" value="310000"/>
  <field id="7" value="0101150110"/>  
  <field id="11" value="000002"/>
</Msg>

是否可以将以下xml文档拆分为字典对象,其中key是属性,value是该元素的值?

例如: - 键= 0值= 0100

2 个答案:

答案 0 :(得分:6)

我建议使用LINQ to XML,而不是使用XmlReader,这时非常简单:

var dictionary = document.Descendants("field")
                         .ToDictionary(x => (int) x.Attribute("id"),
                                       x => (string) x.Attribute("value"));

答案 1 :(得分:1)

var query = (from element in document.Descendants("field"))
             .ToDictionary(pair => (int)pair.Attribute("id"), 
                           pair => (string)pair.Attribute("value"));