2010-11-15 16 views
5

我在C#中编程并使用XDocument。 当且仅当没有其他元素具有匹配的属性值时,才想要将元素添加到树中。如何使用LINQ来确定特定属性值是否存在?

例如,是否有一个LINQ表达式可以用来查看下面的元素,并在添加它之前查看是否已经存在具有相同名称的foo元素?

<people> 
    <foo Name="Bob"> </foo> 
    <foo Name="Larry"></foo> 
    <foo Name="Tom"></foo> 
</people> 

我想要做这样的事情...

while(myXDocument.Element("people").Elements("foo").Attribute("Name").Contains(myName)) 
{ 
    // modify myName and then try again... 
} 

回答

8

这应该工作:

XElement.Any(element => element.Attribute("Name").Value == myName) 

,如果有,等于myName

+0

嗨属性Name这将返回true,谢谢你的回答,这是非常有用的!但是,你写了“=”而不是“==”,不是吗? – 2013-01-08 14:10:46

+1

确实如此,作为一个VB人,有时很难切换到C# – wagi 2013-05-23 09:49:25

4

你可能想看看IEnumerable.Any上XDocument.Elements。这确定序列中的任何元素是否满足条件。

相关问题