如何在c#中检查字符串数组的每个元素是否包含数据

时间:2010-06-22 11:01:28

标签: c#-3.0

我创建了Web应用程序并使用文本框,它可以包含多行数据becoz我已经设置了它的textmode属性是多行的。    我的问题是我想检查每一行是否包含数据,所以我使用count变量来计算包含数据的行数。

string[] data;
int cntindex;   
data = txt_invoicenumber.Text.ToString().Split("\n".ToCharArray());
cntindex = data.Length;
for (j = 0; j < cntindex; j++)
{
    if (data[j]!="")  
    {
        inv_count++;            
    }        
}

它不起作用。  请帮帮我。

4 个答案:

答案 0 :(得分:1)

我想这是因为新行\r\n所以空行也有'\r'
将if语句更改为:

if (data[j].Trim().Length != 0)

答案 1 :(得分:0)

首先,您不需要ToString() .Text属性,因为它已经是一个字符串。

试试这个

string[] lines = txt_invoicenumber.Text.Split(Environment.NewLine);
int lineCount = 0;
foreach(string line in lines)
{
    if(!string.IsNullOrEmpty(line))
    {
        lineCount ++;
        this.ProcessLine(line);
    }
}

答案 2 :(得分:0)

var lb = new String[] { "\r\n" };    
var lines = txt_invoicenumber.Text.Split(lb, StringSplitOptions.None).Length;

这也会计算空行。如果您不想计算空行,请使用StringSplitOptions.RemoveEmptyEntries值。

如果您对环境几乎无法控制,请不要在“\ r \ n”上计算100%。

答案 3 :(得分:0)

这是我想出的答案。

String[] lines = TextBox1.Text.Split(new Char[] { '\r', '\n' },
                                     StringSplitOptions.RemoveEmptyEntries);
Int32 validLineCount = lines.Length;