#vb.net
Вопрос:
У меня есть многострочное текстовое поле, и я хочу, чтобы в нем был номер строки с этим конкретным словом.
Я попробовал это:
For Each line As String In TextBox1.Lines
If line = "50" Then
Label2.Text = 'Number Of line
End If
Next
Но я не знаю, как получить номер строки с цифрой «50» в нем и показать его в label2.
как я могу это сделать?
Комментарии:
1. Разве создание счетчика и его увеличение по мере прохождения строк не работает?
Ответ №1:
Попробуйте использовать счетчик:
Dim iLineCount As Integer = 0
For Each line As String In TextBox1.Lines
iLineCount = 1
If line = "50" Then
Label2.Text = iLineCount.ToString()
End If
Next
Комментарии:
1. дорогой Слизняк, этот код великолепен. Это именно то, что я искал. Ты самый лучший, большое тебе спасибо.
Ответ №2:
Используйте a For
-петлю вместо a For Each
:
Dim lines = TextBox1.Lines
For i As Int32 = 0 To lines.Length - 1
If lines(i) = "50" Then Label2.Text = (i 1).ToString()
Next
Я храню TextBox.Lines
String()
его в переменной, потому что при частом использовании этого свойства возникают некоторые накладные расходы.
Комментарии:
1. дорогой Тим Шмельтер, этот код работает как заклинание. Ты самый лучший, большое тебе спасибо
Ответ №3:
Или попробуйте это:
Dim lines = TextBox1.Lines
Label2.Text = Array.IndexOf(lines, "50").ToString()
Это покажет (основанный на нуле) индекс первой строки, содержащий «50». Или -1, если совпадающие строки не найдены.