验证字符串数组是否包含特定的字符串。

4
我知道这个主题已经被讨论了几次,但我在任何相关的帖子中都没有找到我的答案。
我有一个包含三个字符串项目的小数组。当在我的表单上输入文本并按下“验证”按钮时,我想要验证文本框中输入的文本实际上可以在数组中找到。
我一直在尝试使用.Contains方法,但无济于事。它只适用于数组中的第一个项目。其他项目无法被识别。
我的代码如下:
Dim STRarray as string() = {"RUT","MB","PR"}

if STRarray.contains(textbox.text) Then
    messagebox.show("Item Found.")
else
    messagebox.show("Unable to Locate String.")
end if

如我所述,如果我在文本框中输入RUT,则代码运行正常。但是如果我输入MB或PR,则无法找到它们。

如果有帮助,将不胜感激。谢谢!


1
你尝试查看STRarray的内容了吗? - novice
1
是的,我已经这样做了,以确保我的数组实际上已填充。这就是我为什么感到困惑的原因,哈哈。 - user3108663
1个回答

3

https://dotnetfiddle.net/Ks8SFQ ... 它正在工作..你缺少什么

尝试使用TrimToUpper..像下面这样..它可能会起作用

Dim STRarray as string() = {"RUT","MB","PR"}

if STRarray.contains(textbox.text.trim().ToUpper()) Then
    messagebox.show("Item Found.")
else
    messagebox.show("Unable to Locate String.")
end if

1
我会尝试这个,谢谢!我已经通过文本框将所有文本默认为 ToUpper,但我会尝试使用 trim。 - user3108663
2
TrimToUpper 会在内存中创建不必要的字符串,使用重载的 Contains 方法,该方法允许您指定不区分大小写的比较方式: STRarray.Contains(textbox.Text, StringComparer.InvariantCultureIgnoreCase) - Chris Dunaway
1
StringComparer.CurrentCultureIgnoreCaseStringComparer.InvariantCultureIgnoreCase 有什么不同? - NewBie1234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接