VB.NET循环检测多行文本框时如何获取空白行的行号?
VB.NET 获取多行文本框空白行行号实现方案
TextBox.Lines属性是按顺序存储每行内容的字符串数组,你可以通过遍历数组索引的方式直接获取对应行号,两种常用实现方式如下:
方案1:直接遍历数组索引(推荐)
这种方式逻辑最直观,不需要额外维护计数变量:
' 用于存储所有空白行行号的列表 Dim blankLineNumbers As New List(Of Integer)() For i As Integer = 0 To TextBox2.Lines.Length - 1 ' 判断空行:String.IsNullOrWhiteSpace 可同时匹配全空格、制表符的空白行 ' 如果仅需匹配完全无字符的纯空行,替换为 If TextBox2.Lines(i) = "" 即可 If String.IsNullOrWhiteSpace(TextBox2.Lines(i)) Then ' 日常使用的行号从1开始,数组索引从0开始,所以+1;如果需要0起始行号直接用i Dim currentLineNumber As Integer = i + 1 blankLineNumbers.Add(currentLineNumber) ' 这里可以追加你需要的其他业务逻辑 ' 示例:弹出提示找到空白行 MessageBox.Show($"第 {currentLineNumber} 行为空白行") End If Next
方案2:For Each 循环搭配计数变量
如果要保留你原有For Each的写法,可以额外声明一个索引计数变量:
Dim blankLineNumbers As New List(Of Integer)() Dim lineIndex As Integer = 0 For Each line As String In TextBox2.Lines If String.IsNullOrWhiteSpace(line) Then Dim currentLineNumber As Integer = lineIndex + 1 blankLineNumbers.Add(currentLineNumber) End If lineIndex += 1 Next
注意事项
- 两种方案都可以把匹配到的空白行行号存在
blankLineNumbers列表里,你后续可以直接遍历这个列表获取所有空白行位置 - 行号计数规则可以按需调整,如果需要和数组索引一致从0开始,去掉+1的逻辑即可
内容的提问来源于stack exchange,提问作者vahid Araghi
相关产品推荐
相关产品推荐

