我有一个VB.NET表单,用户可以从40个不同的值中选择。 我想要的不是一个包含所有40个值的dropbox来使用一个文本框,该文本框验证用户给出的搅拌是否是这40个单词中的一个值。
所以例如我需要用户写东西并验证字符串是40个保留字之一,如“紧急”,“发布”......也许这些单词存储在数组中,然后比较用户写的内容?
TextBox1.Text.Contains("urgent")
TextBox1.Text.Contains("post")
TextBox1.Text.Contains("standard")
TextBox1.Text.Contains("stay")
也许是方法
Public Function Contains(ByVal value As String) As Boolean
Return ( TextBox1.Text(value, ...) >= 0)
End Function
最好的方法是什么?
答案 0 :(得分:1)
您可以使用Contains方法创建保留字的List(of String),以使用您的Contains函数检查输入的内容是否是其中之一。我不确定你将要解析的文本有多大,所以我将它分成单个单词。
Public Class Form1
Dim reservedWords As List(Of String) = New List(Of String)({"urgent", "post", "standard", "stay"})
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
Dim text As String = CType(sender, TextBox).Text
If ContainsReservedWord(text) Then Beep()
End Sub
Public Function ContainsReservedWord(value As String) As Boolean
Dim x As Integer
Dim stringSplit As String() = value.Split
If stringSplit.Count > 0 Then
For x = 0 To stringSplit.Count - 1
If reservedWords.Contains(LCase(stringSplit(x))) Then Return True
Next
End If
Return False
End Function
End Class
答案 1 :(得分:0)
使用以下代码验证属于保留字的字符串。
var lstReservedWords = new List<string> {"urgent", "post", "standard", "stay", .......};
bool isReservedWord = lstReservedWords.Any(r => String.Compare(r, TextBox1.Text, true) == 0);
希望这有帮助。