1

我得到一个包含所有子 XElement 的 HybridDictionary。
我不知道我那里有多少物品。
所以不要这样做:

xmlDoc.Element("Parent").Add(
     new XElement("Child", new XAttribute("Name", "Child1"),
           new XElement("Id", "796"),
           new XElement("Name", "gdsa")
           etc..
      ));  

我正在尝试做这样的事情:

Strung [] allKeys = new String[ChildElements.Count];
TheHybridDictionary.Keys.CopyTo(allKeys, 0);

xmlDoc.Element("Parent").Add(
      new XElement("Child", new XAttribute("Name", "Child1"),
            for (int i = 0; i < TheHybridDictionary.Count; i++)
                   new XElement(allKeys[i], TheHybridDictionary[allKeys[i]])

但是如何将 for 循环中的任何内容连接为 XML 文档构造的一部分呢?

4

2 回答 2

1

您可以使用 Stefan 评论中的 .Add() 方法,或使用 LINQ:

xmlDoc.Element("Parent").Add(
  new XElement("Child", new XAttribute("Name", "Child1"),
        TheHybridDictionary.Select(kvp => new XElement(kvp.Key, kvp.Value)));
于 2013-09-10T07:40:56.043 回答
1

问题是,你的HybridDictionary类没有实现IEnumerable,所以你不能直接在它上面使用 LINQ。

但是您可以改用allKeys字符串数组:

string [] allKeys = new String[ChildElements.Count];
TheHybridDictionary.Keys.CopyTo(allKeys, 0);

xmlDoc.Element("Parent").Add(
    new XElement("Child", new XAttribute("Name", "Child1"),
        allKeys.Select(x => new XElement(x, TheHybridDictionary[x])))
于 2013-09-10T17:47:21.940 回答