C# Linq到Xml-从重复的Xml创建字典

C# Linq到Xml-从重复的Xml创建字典,c#,xml,dictionary,linq-to-xml,C#,Xml,Dictionary,Linq To Xml,我有这样一个XML字符串: <root> <name>Key</name> <value>Value</value> <name>Key</name> <value>Value</value> <name>Key</name> <value>Value</value> </root> 钥匙 价值 钥匙

我有这样一个XML字符串:

<root>
  <name>Key</name>
  <value>Value</value>
  <name>Key</name>
  <value>Value</value>
  <name>Key</name>
  <value>Value</value>
</root>

钥匙
价值
钥匙
价值
钥匙
价值
如何生成与此对应的C#字典-即为每对名称和值创建一个字典项。(使用Linq To XML)。

您可以使用:


我想试试这样的

XDocument doc = XDocument.parse(... parse you XML here ...);
var nameElements = doc.Descendants("name");
var dictionary = nameElements.ToDictionary(el => el.Value,
                                           el => el.ElementsAfterSelf().First().Value);
首先查找所有
name
元素,然后将此数组投影到字典。键选择器使用
el.Value
,这是
name
元素的值。值选择器获取元素的下一个同级,它将是您的
元素。

请参见此处
XDocument doc = XDocument.parse(... parse you XML here ...);
var nameElements = doc.Descendants("name");
var dictionary = nameElements.ToDictionary(el => el.Value,
                                           el => el.ElementsAfterSelf().First().Value);