2012-03-07 59 views
1

我想通过标签显示文本框中的文本行数。但是,事情是如果最后一行是空的,标签必须显示行号出空行。获取文本框中的文本行数

例如,如果它们是5线与最后行空,则标签应显示为4.

由于行数..

private void txt_CurrentVinFilter_EditValueChanged(object sender, EventArgs e) 
{ 
    labelCurrentVinList.Text = string.Format("Current VIN List ({0})", txt_CurrentVinFilter.Lines.Length.ToString());      
} 

实际上,上面是代码...必须更改为仅显示C#winforms中的非空行。

感谢

+2

呀,你就需要实际*问*人的一个问题回答。 – adelphus 2012-03-07 18:12:16

+0

如果你喜欢答案,接受它作为一个 – 2014-10-07 08:12:35

回答

0

这将不计任何空行作为结束

int count = tb.Lines.Length; 
while (count > 0 && tb.Lines[count - 1] == "") { 
    count--; 
} 

或者,如果您还想排除只包含空格

int count = tb.Lines.Length; 
while (count > 0 && tb.Lines[count - 1].Trim(' ','\t') == "") { 
    count--; 
} 
9

你也可以做这行以更短的方式使用LinQ。计数线和exlcude最后一行,如果它是空的:

var lines = tb.Lines.Count(); 
lines -= String.IsNullOrWhiteSpace(tb.Lines.Last()) ? 1 : 0; 

并计算唯一的非空行:

var lines = tb.Lines.Where(line => !String.IsNullOrWhiteSpace(line)).Count(); 
+0

非常好的示例代码:) – deadfish 2012-03-07 18:58:51