Есть некий анонимный массив типов:
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) }));
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости