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

C# 3.0 如何在c中检查字符串数组的每个元素是否包含数据#,c#-3.0,C# 3.0,我已经创建了web应用程序并使用textbox,它可以包含多行数据,因为我已经将其textmode属性设置为multiline。 我的问题是,我想检查每一行是否包含数据,所以我使用count变量来计算有多少行包含数据 string[] data; int cntindex; data = txt_invoicenumber.Text.ToString().Split("\n".ToCharArray()); cntindex = data.Length; for (j = 0; j <

我已经创建了web应用程序并使用textbox,它可以包含多行数据,因为我已经将其textmode属性设置为multiline。 我的问题是,我想检查每一行是否包含数据,所以我使用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++;            
    }        
}
string[]数据;
int-cnt索引;
data=txt\u invoicenumber.Text.ToString().Split(“\n.tocharray());
CNTDINDEX=数据长度;
对于(j=0;j
它不起作用。
请帮帮我。

我想这是因为新行是
\r\n
,所以空行上也有一个
'\r'

将if语句更改为:

if (data[j].Trim().Length != 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);
    }
}
这也将计算空行数。如果不想计算空行数,请使用
StringSplitOptions.RemoveEmptyEntries


如果您对环境几乎没有控制权,请不要100%依赖“\r\n”。

这就是我提出的答案

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

我建议使用string.IsNullOrEmpty()。
String[] lines = TextBox1.Text.Split(new Char[] { '\r', '\n' },
                                     StringSplitOptions.RemoveEmptyEntries);
Int32 validLineCount = lines.Length;