Мне было интересно, как я могу выбрать несколько инициализаторов объектов в 1 select statement, используя XML-документ. Я хотел бы избежать нескольких итераций в одном файле.Инициализаторы многоуровневых объектов в 1 запросе LINQ
Структура XML выглядит следующим образом:
<root>
<doc name="test.doc">
<version lang="nl">
</version>
<version lang="fr">
</version>
</doc>
<doc name="test2.doc">
<version lang="nl">
<title>Document over ons</title>
</version>
<version lang="fr">
<title>Document de nous</title>
</version>
</doc>
</root>
Оператор LINQ для 1 элемента будет выглядеть следующим образом:
var docs = select e from xmlDoc.Descendants("doc")
select new docEntry()
{
Name = (string)e.Attribute("name"),
Title = (string)element.Elements("version").Where(d => (string)d.Attribute("language_code") == "nl").First().Element("title")
}
Теперь я хотел бы, чтобы выбрать французский вариант в 1 идти, а , псевдо-код примерно так:
var docs = select e from xmlDoc.Descendants("doc")
select new docEntry()
{
Name = (string)e.Attribute("name"),
Title = (string)element.Elements("version").Where(d => (string)d.Attribute("language_code") == "nl").First().Element("title")
},
select new docEntry()
{
Name = (string)e.Attribute("name"),
Title = (string)element.Elements("version").Where(d => (string)d.Attribute("language_code") == "fr").First().Element("title")
}
Любые идеи о том, как я могу это сделать в 1 раз? Я знаю, что смогу сделать это в 2-х раундах по XML, но это было бы глупо, нет?
Оу да, это синтаксис я искал –