LINQ to XML выбрать несколько элементов? - PullRequest
3 голосов
/ 26 января 2011

Как выбрать несколько элементов (с разными именами) в запросе LINQ to XML ?

У меня такой запрос:

var elems = from descendant in doc.Descendants("foo")
                            select descendant;

НоЯ хочу выбрать как foo, так и bar, вроде как:

var elems = from descendant in doc.Descendants("foo" || "bar")
                            select descendant;

Но это просто для иллюстрации того, что я хочу сделать, я знаю, что это неправильный синтаксис.Я не знаю, как это можно сделать с помощью LINQ to XML, так как правильно это сделать?

Ответы [ 2 ]

7 голосов
/ 26 января 2011

Вы можете передать только один XName в эти методы.Просто оставьте их там и выполните обычную фильтрацию LINQ.

var elems = doc.Descendants()
               .Where(desc => desc.Name == "foo" || desc.Name == "bar");

Использование XPath - это еще один способ.

var elems = doc.XPathSelectElements("//foo|//bar");
4 голосов
/ 26 января 2011

Ну, один вариант:

var elems = doc.Descendants().Where(x => x.Name == (XName) "foo" ||
                                         x.Name == (XName) "bar");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...