1

我有以下 XML:

<projects>
    <project>
        <name>Super 1</name>
        <types>
            <type>Art</type>
            <type>Retro</type>
        </types>
    </project>
    <project>
        <name>Super 2</name>
        <types>
            <type>Retro</type>
        </types>
    </project>
</projects>

我需要实现SelectProjectsOfType(string type)方法。它应该返回所有具有给定类型<project>XElements,这些类型被列为它们的内部集合<type>之一。<types>所以我需要先分析每个元素中的类型,如果存在搜索中的类型,则选择整个项目节点。如何在使用LINQ时优雅地做到这一点?

4

1 回答 1

0
XElement projects = ...;
string searchTerm = "some-type-of-project";

var result = projects.Descendents("project").Where(
  p => p.Descendents("type").Any(t => t.Value == searchTerm)
);
于 2012-06-08T13:45:25.730 回答