2011-10-30 143 views
1

我需要根据e值(每个时间是不同的)可变数目XElements的添加到我的XML文档XElements可变数量的创建的XDocument XML。我认为我需要做一些类似于下面的内容,但下面的代码给了我6个错误。它们是:使用for循环

  • 只有分配,呼叫,增加,减少,和新的对象的表达式可以被用作“的” /“)” /“)”
  • 一个语句×2
  • 无效表达术语

    ;预计

    int e = 3; 
    
    doc.Root.Add(new XElement(ns + "LineItemList", 
    
    for(int i = 0; i <= e; i++) 
    { 
        new XElement("ItemNumber", i.ToString()); 
    } 
    
    )); 
    

我在做什么错?

把我的问题的另一种方式,我的理解是,有我LineItemListelement里面,我需要把我的LineItem的LineItemList的声明中我LineItem元素。

如果有人能告诉我如何明确地打开和关闭的元素,而不是他们的打开和关闭含蓄,这将有很大的帮助。

回答

6

试试这个:

int e = 3; 
XDocument doc = new XDocument(
      new XElement(ns + "LineItemList", 
       Enumerable.Range(0, e).Select(i => new XElement("ItemNumber", i)) 
     )); 
+0

为此,Thankyou完美地工作=) – JMK

0

您不能使用方法调用内循环。

也许你想要做这样的事情:

for(int i = 0; i <= e; i++) { 
    XElement element = new XElement("ItemNumber", i.ToString()); 
    doc.Root.Add(element); 
} 

我没有测试此代码。

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) 
} 
+0

我发现这非常有用。谢谢。 – paulpitchford