0

我有一个搜索框,我需要根据字符串数组检查其中的所有单词

到目前为止,我有以下代码

        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包含所有单词的单词吗?

提前致谢

4

2 回答 2

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"))
于 2012-07-30T14:48:44.550 回答
1

尝试使用此代码:

result = from  item in wordList 
            where item.Contains(TextBox1.Text)
            select item;
于 2012-07-30T14:50:21.033 回答