2

我有一个这样的 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)。

4

2 回答 2

1

我会尝试这样的事情......

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元素的值。值选择器采用元素的下一个兄弟元素,这将是您的value元素。

于 2013-03-06T13:09:55.770 回答
0

您可以使用ToDictionary()

var dict = XElement.Parse(yourMarkup).Elements("name").ToDictionary(
    name => name.Value,
    name => name.ElementsAfterSelf("value").First().Value);
于 2013-03-06T13:09:19.243 回答