如何使用LINQ来确定是否存在特定的属性值?

时间:2010-11-15 20:23:27

标签: c# xml linq

我正在用C#编程并使用XDocument。 当且仅当没有其他元素具有匹配的属性值时,才想在树中添加元素。

例如,是否有一个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...
}

2 个答案:

答案 0 :(得分:9)

这应该有效:

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

如果属性Name等于myName

,它将返回true

答案 1 :(得分:4)

您可能希望查看XDocument.Elements上的IEnumerable.Any。这确定序列的任何元素是否满足条件。