2009-03-03 97 views
3

我正在学习LINQ to XML,需要找到具有特定属性的元素的存在。目前我使用的是:如何通过使用LINQ to XML的属性来查找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; 

我知道有这样做的更简洁的方式,可能使用任何(),但我不知道如何重写使用它的查询。有没有人有一些好的建议?谢谢。

回答

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(); 

,如果你想这一切在同一行

+0

请问你能给出另一个答案,它不是全部在一行上,而且更易于阅读吗? – 2009-03-03 16:37:11

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