3
linq 쿼리에서 요소가 요소 (where 절)를 필터링해야하는 동적 배열이 있습니다.동적 where 절을 가진 쿼리 (연결된 배열 요소)
나는 this questions 최고 대답에서 언급 한 System.Linq.Dynamic
라이브러리를 사용합니다. 실행 한 경우 :
Dim query = From element In dtImitate.Where("Team = ""Avangers"" Or Team = ""Asgard""")
쿼리가 작동합니다. 하지만 배열 요소를 수집하고이 같은 문자열에 넣어 경우 :
Public Shared Function CreateDynString(ByRef arr As String()) As String
Dim a As New StringBuilder
a.Append("""")
For Each element In arr
a.Append("Team = ").Append("""""").Append(element).Append("""""").Append(" or ")
Next
Dim b As Integer = a.Length - 4
a.Remove(b, 4)
a.Append("""")
Return a.ToString
End Function
을하고 쿼리를 실행
Dim s As String = DynamicStringBuilder.CreateDynString(teamsArray).ToString
Dim query = From element In dtImitate.Where(s)
아무런 변화가 없습니다. 내 DGV가 비어 있습니다. 아무도 내가이 쿼리를 작동하도록 도와 줄 수 있으며, 왜 작동하지 않는지 알 수 있습니다. s
을 인쇄 할 경우 "Team = ""Avangers"" Or Team = ""Asgard"""
입니다. 내가 왜 작동하지 않는지 모르겠다.