2017-01-13 3 views
1

Есть ли способ, которым я могу динамически добавлять новый XElement для формирования дочерних узлов, как в примере ниже?Как динамически заполнять XElement (linq to 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

 Смежные вопросы

  • Нет связанных вопросов^_^