Как получить номер строки определенного слова в нем в многострочном текстовом поле в vb .net

#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, если совпадающие строки не найдены.