Я пишу программу для анализа некоторых сторонних XML-файлов. Структура что-то вроде ...
<CharacterSheet>
...
<StatBlock>
...
<Stat>
...
<alias />
...
</Stat>
...
</StatBlock>
...
</CharacterSheet>
Я использую это для того, чтобы немного попрактиковаться с linq, и мне нужно написать несколько действительно ужасных связанных запросов, чтобы получить то, что я хочу, список статистики и все их псевдонимы.
var CharSheet = from i in character.Elements()
where i.Name == "CharacterSheet"
select i;
var StatBlocks = from sheet in CharSheet
from statBlock in sheet.Elements()
where statBlock.Name == "StatBlock"
select statBlock;
var stats = from statBlock in StatBlocks
from stat in statBlock.Elements()
select stat;
var statAliases = from stat in stats
from alias in stat.Elements()
where alias.Name == "alias"
select new { stat, alias };
И я понимаю, что могу превратить это в один действительно длинный запрос, используя «в» (что изначально и было), но это только сделало его еще более плотным и трудным для работы.
Кажется, должен быть более простой способ сделать то, что я пытаюсь сделать.