我需要根据e的值(每次都不同)将可变数量的XElements添加到我的XML文档中。我想我需要做类似于下面的事情,但下面的代码给了我6个错误。这些是:
预期
int e = 3;
doc.Root.Add(new XElement(ns + "LineItemList",
for(int i = 0; i <= e; i++)
{
new XElement("ItemNumber", i.ToString());
}
));
我做错了什么?
以另一种方式提出我的问题,我的理解是要将LineItem元素放在LineItemListelement中,我需要将LineItem放在LineItemList的声明中。
如果有人可以告诉我如何明确地打开和关闭元素,而不是隐式打开和关闭它们,这将有很大帮助。
答案 0 :(得分:6)
试试这个:
int e = 3;
XDocument doc = new XDocument(
new XElement(ns + "LineItemList",
Enumerable.Range(0, e).Select(i => new XElement("ItemNumber", i))
));
答案 1 :(得分:2)
我认为你在寻找:
int e = 3;
XElement lineElement = new XElement(ns + "LineItemList");
doc.Root.Add(lineElement);
for(int i = 0; i <= e; i++)
{
XElement itemElement = new XElement("ItemNumber", i.ToString());
lineElement.Add(itemElement)
}
答案 2 :(得分:0)
您不能在方法调用中使用for循环。
也许你想做这样的事情:
for(int i = 0; i <= e; i++) {
XElement element = new XElement("ItemNumber", i.ToString());
doc.Root.Add(element);
}
我没有测试此代码。