0

私はVB.NETフォームを持っており、ユーザーは40の異なる値から選択します。40個の値すべてを含むドロップボックスの代わりに、ユーザーが指定した攪拌が40個の単語の1つの値であるかどうかを検証するテキストボックスを使用したいと思います。

たとえば、ユーザーが何かを書き込んで、文字列が「urgent」、「post」などの40の予約語の1つであることを検証する必要があります。これらの単語は配列に格納されている可能性があり、ユーザーが書いたものと比較しますか?

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 

これを行うための最良の方法は何でしょうか?

4

2 に答える 2

1

予約語の List(of String) を作成するには、Contains メソッドを使用して、次のような Contains 関数を使用して、入力されたものがそれらの 1 つであるかどうかを確認します。解析するテキストの大きさがわからないので、個々の単語に分割しています。

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
于 2012-10-17T02:49:49.270 に答える
0

以下のコードを使用して、予約語に属する文字列かどうかを検証します。

var lstReservedWords = new List<string> {"urgent", "post", "standard", "stay", .......};
bool isReservedWord = lstReservedWords.Any(r => String.Compare(r, TextBox1.Text, true) == 0);

お役に立てれば。

于 2012-10-17T02:47:53.323 に答える