2010-11-15 79 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。這確定序列中的任何元素是否滿足條件。

相關問題