2016-10-25 2 views
1

Это мой код:Как добавить элементы итерации XElement?

var xml = new XElement("test", new[] { 
    new XElement("group", new[] { 
     new XElement("date", dateNow.ToString("dd/MM/yyyy HH:mm:ss")) 
    }), 

    new XElement("users", new[] { 
     foreach(var item in in PlaceHolderCustom.Controls) 
     { 
      new XElement("nome", ((TextBox)item.FindControl("myTextBox")).Text) 
     } 
    }) 
}); 

Я хотел бы установить в XML некоторые фиксированные поля (в пределах элемента «группы») и некоторые, которые бы итерацию по заполнителем. Но синтаксис кажется неправильным, когда я пытаюсь добавить новый «итерирующий» список.

Где я ошибаюсь?

ответ

1

Используйте linq .Select для выполнения команды foreach. Также при создании массива синтаксис new [] {} действителен только для new string[]. В вашем случае использования:

  • new XElement[] {}
  • Или потому, что метод получает params object[] вы можете просто дать каждому new XElement самостоятельно без упаковки с массивом

Так показывая оба пути прохождения коллекции XElements :

var xml = new XElement("test", 
    new XElement("group", new XElement[] { 
     new XElement("date", dateNow.ToString("dd/MM/yyyy HH:mm:ss")) 
    }), 
    new XElement("users", PlaceHolderCustom.Control.Select(item => 
     new XElement("nome", ((TextBox)item.FindControl("myTextBox")).Text)).ToArray()) 
); 

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

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