使用LinqToXml使用过滤器选择唯一的XElements(按属性)

Mat*_*ats 7 c# xml unique linq-to-xml

我有一个类似于这样的XML文档:

<items>
 <item cat="1" owner="14">bla</item>
 <item cat="1" owner="9">bla</item>
 <item cat="1" owner="14">bla</item>
 <item cat="2" owner="12">bla</item>
 <item cat="2" owner="12">bla</item>
</items>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用linq查询获取属于指定类别的所有唯一所有者(实际上只需要所有者的属性值).在我的示例中,cat 1的查询将返回包含9和14的列表.我该怎么做?Linq语法比Lambdas更受欢迎.提前致谢 ;)

Jen*_*fer 15

假设片段在itemsElement中:

var distinctOwners = (from item in itemsElement.Element("item") 
 where itemElements.Attribute("cat") == 1 
select item.Attribute("owner")).Distinct();
Run Code Online (Sandbox Code Playgroud)

抱歉格式化和缩进!