Есть некий анонимный массив типов:
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>
Сделал не через LINQ запрос, а через метод SelectMany:
XElement peopleDoc = new XElement("People", people .SelectMany(c => new[] { new XElement("Person", new XAttribute("Age", c.Age)), new XElement("FirstName", c.FirstName) }));
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Работаю с Google-картой, используя XamarinМне нужно, чтобы метку (маркер), которую я поставил в своем приложении, увидели все устройства
Цель такая - один скрипт может запускать/убивать другие скрипты-демоныДля этого я использую shell_exec(), сохраняю PID и потом управляю процессами...