Взгляните на эту картинку. - http://www.imagebam.com/image/f544011007926944
Я хочу проверить в Textbox1, в textbox2 введите номер, и если он есть, я появлюсь в другом текстовом поле. проблема возникает, когда в textbox1 есть числа, такие как 10,11, если я введу textbox2 номер 1, тогда он будет принят как таковой, он будет выглядеть так, как если бы есть номер 1. Я буду использовать только для чисел от 1 до 80.
где я не прав?
' Split string based on space
Dim textsrtring As String = TextBox1.Text
Dim words As String() = textsrtring.Split(New Char() {" "c})
Dim found As Boolean = False
' Use For Each loop over words
Dim word As String
For Each word In words
If TextBox2.Lines(0).Contains(word) Then
found = True
If CheckVar1.Text.Contains(word) Then
Else
CheckVar1.Text = CheckVar1.Text + " " + TextBox1.Text()
End If
End If





Думаю, я знаю, чего вы хотите. Ваша проблема заключается в том, что функция сравнения в строке сравнивает строковые литералы, а не числа «11» содержат «1», а «1» для сравнения вернет истину, если в нем содержится «1». Вам нужно преобразовать строки в числа, а затем сравнить числа друг с другом.
Private Sub CompareNumbers()
'First Textbox that is to be used for compare
Dim textBox1Numbers As List(Of Integer) = GetNumbersFromTextLine(TextBox1.Text)
'Second Textbox that is to be used for compare
Dim textBox2Numbers As List(Of Integer) = GetNumbersFromTextLine(TextBox2.Text)
'Union List of Common Numbers (this uses a lambda expression, it can be done using two For Each loops instead.)
Dim commonNumbers As List(Of Integer) = textBox1Numbers.Where(Function(num) textBox2Numbers.Contains(num)).ToList()
'This is purely for testing to see if it worked you can.
Dim sb As StringBuilder = New StringBuilder()
For Each foundNum As Integer In commonNumbers
sb.Append(foundNum.ToString()).Append(" ")
Next
MessageBox.Show(sb.ToString())
End Sub
Private Function GetNumbersFromTextLine(sTextLine As String) As List(Of Integer)
Dim numberList As List(Of Integer) = New List(Of Integer)()
Dim sSplitNumbers As String() = sTextLine.Split(" ")
For Each sNumber As String In sSplitNumbers
If IsNumeric(sNumber) Then
Dim iNum As Integer = CInt(sNumber)
If Not numberList.Contains(iNum) Then
numberList.Add(iNum)
End If
Else
MessageBox.Show("Non Numeric Found in String :" + sTextLine)
End If
Next
Return numberList
End Function
Сработало ... Большое спасибо за код, с этим кодом программа лотереи будет почти готова: D Программа будет знать, как распознавать выигрышные числа из текстового файла и множества комбинаций.
Вы можете улучшить свой вопрос? Трудно получить именно то, что вам нужно ... но если я не ошибаюсь, вы относитесь к числам как к буквам, и поэтому, если вы напишете «1», вы получите совпадения типа «11», потому что это буква а не число.