Мой код работает для OR, как я перечислил ниже, но я хочу использовать AND вместо OR, и он не работает. Я не совсем уверен, что я делаю не так. По сути, у меня есть запрос Linq, который выполняет поиск по нескольким полям в файле XML. Не все поля поиска могут содержать информацию. Каждый элемент запускает метод расширения и проверяет равенство. Любой совет будет оценен.
refinedresult = From x In theresult _
Where x.<thelastname>.Value.TestPhoneElement(LastName) Or _
x.<thefirstname>.Value.TestPhoneElement(FirstName) Or _
x.<id>.Value.TestPhoneElement(Id) Or _
x.<number>.Value.TestPhoneElement(Telephone) Or _
x.<location>.Value.TestPhoneElement(Location) Or _
x.<building>.Value.TestPhoneElement(building) Or _
x.<department>.Value.TestPhoneElement(Department) _
Select x
Public Function TestPhoneElement(ByVal parent As String, ByVal value2compare As String) As Boolean
'find out if a value is null, if not then compare the passed value to see if it starts with
Dim ret As Boolean = False
If String.IsNullOrEmpty(parent) Then
Return False
End If
If String.IsNullOrEmpty(value2compare) Then
Return ret
Else
ret = parent.ToLower.StartsWith(value2compare.ToLower.Trim)
End If
Return ret
End Function
Обновление Я разобрался, что именно вызывает проблему. Я до сих пор не уверен, как это исправить. В основном любые пропущенные пустые строки вызывают сбой операции. Однако, если все (фамилия, имя и т. Д.) Имеют критерии, это работает. Есть идеи?