如何在循环中动态添加 XE
本文关键字:动态 添加 XE 循环 | 更新日期: 2023-09-27 18:30:49
我得到了一个包含所有子XElements的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 文档构造的一部分呢?
问题是,你的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])))
您可以使用
.Add() 方法,如 Stefan 的注释所示,或使用 LINQ:
xmlDoc.Element("Parent").Add(
new XElement("Child", new XAttribute("Name", "Child1"),
TheHybridDictionary.Select(kvp => new XElement(kvp.Key, kvp.Value)));