使用LINQ to XML如何通过属性查找XML元素?

3

我正在学习LINQ to XML,并需要查找具有特定属性的元素的存在性。目前我正在使用:

XElement groupCollectionXml = XElement.Parse(groupCollection.Xml);
IEnumerable<XElement> groupFind =
    from vw in groupCollectionXml.Elements("Group")
    where (string) vw.Attribute("Name") == groupName
    select vw;

if (groupFind.Count() == 0)
    return false;
else
    return true;

我知道有一种更简洁的方法来做这件事,可能使用Any()函数,但我不确定如何重写查询语句以使用它。有人有好的建议吗?谢谢。

3个回答

6
groupCollectionXml.Elements("Group").Any(
    vw=>(string)vw.Attribute("Name") == groupName
  );

2

感谢另外两个回答。我将一个的简洁性和另一个的正确性结合在一起,然后搅拌出了以下代码,它能够良好地运行:

groupCollectionXml.Elements("Group").Any(
  vw => string.Equals(vw.Attribute("Name").Value, groupName, StringComparison.OrdinalIgnoreCase)
);

2
groupCollectionXml.
    Elements("Group").
    Where(item=>String.
        Equals(item.Attribute("Name"), groupName, OrdinalIgnoreCase)).
    Any();

如果您希望所有内容都在一行上显示


请问您能否提供另一个答案,使其不全部在一行上且更易于阅读? - Alex Angas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接