是否可以返回基于 2 个匹配属性值的元素列表。我尝试了以下但没有成功。
var query = xdoc.Root.Elements("Root")
.Where(x => x.Attribute("Name").Value == "Value1")
.Where(x => x.Attribute("Name").Value == "Value2")
.Select(x => (string)x.Element("ElementName");
这是示例 xml 结构
<Region Name="Leeds">
<Group>
<Data1>Some data 1</Data1>
<Data2>Some data 2</Data2>
</Group>
<Group>
<Data1>Some data 1</Data1>
<Data2>Some data 2</Data2>
</Group>
</Region>
<Region Name="Armley">
<Group>
<Data1>Some data 3</Data1>
<Data2>Some data 4</Data2>
</Group>
</Region>
提前致谢
最佳答案
您可以像@Adil 建议的那样在相同的 Where
子句中使用 ||
,或者使用 Contains
:
var names = new [] { "Value1", "Value2" };
var query = xdoc.Root.Elements("Root")
.Where(x => names.Contains((string)x.Attribute("Name")))
.Select(x => (string)x.Element("ElementName");
我还将 XAttribute.Value
更改为 (string)XAttribute
以使其更安全。
关于c# - Linq XDocument 返回基于 2 个属性值的元素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129756/