LINQ to XML в С#

384
08 января 2017, 15:54

Есть некий анонимный массив типов:

var people = new[]
            {
                new {FirstName = "Mandy", Age = 32},
                new {FirstName = "Ilya", Age = 20},
                new {FirstName = "Miwa", Age = 35},
                new {FirstName = "Ura", Age = 15}
            };

С помощью данных из массива нужно построить xml файл. Для этого использую следующий код:

XElement peopleDoc =
                new XElement("People",
                    from c in people
                    select new XElement("Person", new XAttribute("Age", c.Age), new XElement("FirstName", c.FirstName)));

Когда элемент FirstName вложен в элемент Person все норм. А вот когда я хочу сделать что бы элемент FirstName был на том же самом уровне с элементом Person LINQ запрос отказывается видеть свою переменную c:

XElement peopleDoc =
                new XElement("People",
                    from c in people
                    select new XElement("Person", new XAttribute("Age", c.Age)), new XElement("FirstName", c.FirstName));

Как сделать что бы Person и FirstName были на одном уровне? Хочу что бы получился вот такой результат:

<People>
  <Person Age="32"></Person>
  <FirstName>Mandy</FirstName>  
  <Person Age="20"></Person>
  <FirstName>Ilya</FirstName>  
  <Person Age="35"></Person>
  <FirstName>Miwa</FirstName> 
</People>
Answer 1

Сделал не через LINQ запрос, а через метод SelectMany:

XElement peopleDoc = new XElement("People", people .SelectMany(c => new[] { new XElement("Person", new XAttribute("Age", c.Age)), new XElement("FirstName", c.FirstName) }));
READ ALSO
Показать метку на всех устройствах

Показать метку на всех устройствах

Работаю с Google-картой, используя XamarinМне нужно, чтобы метку (маркер), которую я поставил в своем приложении, увидели все устройства

309
MVC и MVP на примере php проектов

MVC и MVP на примере php проектов

Нашёл вот такое сравнение в картинках для этих двух шаблонов:

429
Почему shell_exec ничего не возвращает?

Почему shell_exec ничего не возвращает?

Цель такая - один скрипт может запускать/убивать другие скрипты-демоныДля этого я использую shell_exec(), сохраняю PID и потом управляю процессами...

463
Проверка наличия строк в файле

Проверка наличия строк в файле

Доброго времени сутокПодскажите пожалуйста

417