You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中如何判断文本框输入字符串是否存在于指定数组中?

解决方案:VB.NET数组无法调用Contains方法的问题

这问题我太熟悉了!在VB.NET里,普通的数组本身并没有内置的Contains实例方法,这就是你收到'contains' is not a member of form1.words错误的核心原因。下面给你几个简单好用的解决办法,挑适合你的就行:

方法1:使用LINQ扩展方法

LINQ为数组提供了Contains扩展方法,但需要先导入System.Linq命名空间。步骤如下:

  1. 在代码文件的最顶部添加导入语句:
Imports System.Linq
  1. 修改你的判断代码(记得先把TextBox的内容赋值给answer):
Dim answer As String = TextBox1.Text ' 补充获取用户输入的代码
If Words.Contains(answer) Then
    MessageBox.Show("you got it")
End If

如果需要忽略大小写匹配,可以改成:

If Words.Contains(answer, StringComparer.OrdinalIgnoreCase) Then
    MessageBox.Show("you got it")
End If

方法2:将数组转换为List(Of String)

List集合本身就内置了Contains方法,你可以先把数组转成List再进行判断:

Dim answer As String = TextBox1.Text
Dim wordList As New List(Of String)(Words) ' 将数组转为List
If wordList.Contains(answer) Then
    MessageBox.Show("you got it")
End If

同样,忽略大小写的话可以用:

If wordList.Contains(answer, StringComparer.OrdinalIgnoreCase) Then
    MessageBox.Show("you got it")
End If

方法3:使用Array.Exists方法

这个方法不需要额外导入命名空间,直接利用Array类的静态方法来判断:

Dim answer As String = TextBox1.Text
If Array.Exists(Words, Function(word) word.Equals(answer)) Then
    MessageBox.Show("you got it")
End If

忽略大小写的写法:

If Array.Exists(Words, Function(word) word.Equals(answer, StringComparison.OrdinalIgnoreCase)) Then
    MessageBox.Show("you got it")
End If

小提醒

别忘了确保Words数组已经正确从文本文件加载了数据,而且answer变量确实获取到了TextBox里的用户输入哦!

内容的提问来源于stack exchange,提问作者Daniel Dee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:02:08