我有一个搜索框,我需要根据字符串数组检查其中的所有单词
到目前为止,我有以下代码
For i As Integer = 0 To wordList.Length - 1
If wordList(i).Contains(TextBox1.Text) Then
Dim item As String() = New String(0) {}
item(0) = wordList(i)
items.Add(item)
End If
Next
这将检查单词是否按照输入顺序包含文本框中的内容,但不包含任何顺序的单个单词。
任何想法如何检查任何顺序的每个单词,只显示wordList
中包含所有单词的单词?
提前致谢
答案 0 :(得分:2)
使用LINQ:
Dim words As String() = TextBox1.Text.Split(' 'c);
If words.All(AddressOf someString.Contains) Then
如果您不想匹配中间的文字,则需要使用正则表达式:
If words.All(Function(W) Regex.IsMatch(someString, "\b" + Regex.Escape(w) + "\b"))
答案 1 :(得分:1)
尝试使用此代码:
result = from item in wordList
where item.Contains(TextBox1.Text)
select item;