문제

Xlement에 지정된 요소 중 하나가 포함되어 있는지 확인하는 방법이 있습니까? 예를 들어, 확인하고 싶은 Xelements가 있습니다.

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>

XeLements를 쿼리하여 요소를 연속하는지 확인하고 싶습니다. <red/>, <green/> 또는 <blue/> 그 아래에 있고 그렇지 않은 경우 true를 반환하십시오.

나는 그것이 단순 해지기를 바랐지만, 내가 생각해 낼 수있는 최선은 다음과 같습니다.

Dim primaryColor = From e In xe1.Elements Where e.Name = "blue" Or e.Name = "red" Or e.Name = "green"
Dim primaryColorTrue = primaryColor.SingleorDefault
If primaryColorTrue IsNot Nothing Then
'Blah
End If

빨간색/녹색/파란색의 Xlements를 배열에 넣고 요소와 같은 것을 사용하는 등 더 나은 방법이 있습니까?

도움이 되었습니까?

해결책

내가 올바르게 이해한다면 - 아마도 C# 사용, 미안하지만 여기에 실제 C# 특정 논리는 없음) :

var colors = new[] {"red", "green","blue"};
bool any = el.Descendants().Any(child => colors.Contains(child.Name.LocalName));

VB가 당신과 싸우더라도 당신이 사용할 수 있다고 확신합니다 .Any 대신에 .SingleOrDefault 그리고 a null 확인하다.

정보를 위해 사용합니다 집단 여기 나에게 이상한 생각처럼 들린다. 나는 단지 색상 이름을 가지고 있습니다 텍스트 가능하다면:

<somexml><color>blue</color></somexml>

또는 속성으로도 :

<somexml color="blue"/>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top