2017-01-13 95 views
1

有沒有一種方法可以動態添加一個新的XElement來形成子節點,如下例所示:如何動態填充XElement(linq到xml)

XElement xEl = new XElement(
       new XElement("Root", 
        // ** Is there a way I can do this: 
       // for(MyObject mObj in myObjects) { 
       //  if (IsXmlObj(mObj)){ 
       //   new XElement(mObj.Name, mObj.Value); 
       //  } 
       // } 
       ); 

我想遍歷一個對象列表來形成子節點。

如果我現在修改迭代地成爲:

// for(MyObject mObj in myObjects) { 
       //  if (IsXmlObj(mObj)){ 
       //   if (mObject.Name=="Small"){ mObject.Name="Big";} 
       //   new XElement(mObj.Name, mObj.Value); 
       //  } 
       // } 

回答

2

使用Select這樣:

var xEl = new XElement("Root",myObjects.Where(mObj=>IsXmlObj(mObj)) 
             .Select(mObj=> new XElement(mObj.Name, mObj.Value))); 
+0

這是一個很好的解決方案!不過,我已經修改了這個問題以包含if語句 – osagie

+0

添加一個Where,檢查我的更新 – octavioccl