Вы просматриваете все свои слова и возвращаете результаты только из последнего слова.
Из вашего кода не очень понятно, как это должно работать, потому что вы возвращаете "a", "существует"или сообщение об ошибке.
Этот код выходит из цикла (и функции), если он находит «запрещенное» слово (которое, очевидно, не имеет значения для вас), или если оно выдает ошибку (которая такженепонятно, почему это вызовет ошибку):
For Each word In words
'call class file
Dim oscar As New webfunctions
Try
'call function to check whether this word exists in database or not,
rer = oscar.chkword(word)
If rer > 0 Then
returnValue = "a"
Else
return "exists"
End If
Catch ex As Exception
return ex.Message
End Try
Next
Return returnValue
Для вашего комментария и вашего обновленного кода, я, вероятно, переработал бы вашу функцию, чтобы вернуть словарь результатов для каждого слова, поскольку этобыть тем, что вы ищете:
<System.Web.Services.WebMethod()> _
Public Function CheckWords(ByVal sentence As String) As Dictionary(Of String, String)
Dim wordDictionary As New Dictionary(Of String, String)
For Each word As String In sentence.Split(" ")
Dim wordResult As String
Try
Dim oscar As New webfunctions
If oscar.chkword(word) > 0 Then
wordResult = "a"
Else
wordResult = "exists"
End If
Catch ex As Exception
wordResult = ex.Message
End Try
If Not wordDictionary.ContainsKey(word) Then
wordDictionary.Add(word, wordResult)
End If
Next
Return wordDictionary
End Function