Linq 检查一个元素是否存在多个可能的元素之一

Linq 检查一个元素是否存在多个可能的元素之一,linq,linq-to-xml,xelement,Linq,Linq To Xml,Xelement,有没有办法确定XElement是否包含任何指定元素之一?例如,我有要检查的元素: Dim xe1 = <color><blue/></color> Dim xe2 = <color><red/></color> Dim xe3 = <color><powderBlue/></color> Dim xe4 = <color><aqua/></color>

有没有办法确定XElement是否包含任何指定元素之一?例如,我有要检查的元素:

Dim xe1 = <color><blue/></color>
Dim xe2 = <color><red/></color>
Dim xe3 = <color><powderBlue/></color>
Dim xe4 = <color><aqua/></color>
Dim xe5 = <color><green/></color>

是否有人有更好的方法来做到这一点,例如将红色/绿色/蓝色的元素放入数组,并使用类似Elements.Contains(元素列表)的东西?

如果我理解正确-也许(使用C,抱歉-但这里没有真正的C特定逻辑):

即使VB与您发生冲突,我相信您也可以使用
.Any
而不是
.SingleOrDefault
null
检查

对于信息,在这里使用元素对我来说听起来很奇怪;如果可能的话,我会将颜色名称作为文本:

<somexml><color>blue</color></somexml>
蓝色
甚至作为一种属性:

<somexml color="blue"/>


有趣的东西-我不喜欢你原来的答案,所以我编写了一个我认为更好的解决方案,刷新了页面,你的解决方案和我的一样!所以+1.工作很有魅力,谢谢!这里是在VB中-Dim colors()=New String(){“green”、“blue”、“red”}Dim any As Boolean=el.subjects.any(函数(e)colors.Contains(e.Name.LocalName))是的,thing-a-muh-jig with use elements只是查询可能存在或不存在的子元素的示例。XML文件不是我的,所以我无法更改它们。
<somexml><color>blue</color></somexml>
<somexml color="blue"/>