Как получить первый уровень детей по LINQ

У меня такой XMl

<root>
    <list>
        <list>
            <topic></topic>
            <topic></topic>
        </list>
        <topic></topic>
        <topic></topic>
    </list>
    <topic></topic>
    <topic></topic>
    <topic></topic>
</root>

Мне нужно получить первый уровень детей:

<list></list>
<topic></topic>
<topic></topic>
<topic></topic>

Я пытаюсь сделать так:

var list = x.Descendants().Where(e => e.Name == "list" || e.Name == "topic");

Но он возвращает все темы и списки.

Пожалуйста, помогите!:)

Ответы

Ответ 1

Просто document.Root.Elements() должен работать.

В основном Descendants() recurses, тогда как Elements() получает только прямых детей.