如何在行之间和行后忽略 TextFile 中的空行?
文本文件格式:

2016-01-01 20:23;Work;5;чистка;5000.00
2016-01-03 00:40;Custom;1;2;6;3
2016-01-03 00:41;Custom;1;1;10;1
第 48 行if (element[1] == "Card")
这是代码本身:
public void SplitAndQuery(string path)
{
char[] separatorLines = { '\n' };
char[] separatorWords = { ';' };
string[] lines = File.ReadAllText(path, Encoding.Default).Split(separatorLines, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i <= lines.Length - 1; i++)
{
string[] element = lines[i].Split(separatorWords, StringSplitOptions.RemoveEmptyEntries);
if (element[1] == "Card")
{
if (checkCard(element[2]) == false)
{
insertCard(element[2], element[3], element[4], element[5], element[6], element[7], element[8]);
if (checkDiscount(element[2]) == "-1")
{
connection.Close();
MessageBox.Show("ups");
}
else
{
insertDiscount(element[0],element[9]);
}
}
else if (checkCard(element[2]) == true)
{
updateCard(element[3], element[4], element[5], element[6], element[7], element[8], element[2]);
if (checkDiscount(element[2]) == "-1")
{
connection.Close();
MessageBox.Show("ups");
}
else
{
insertDiscount(element[0],element[9]);
connection.Close();
}
}
}
某些操作系统,例如 Microsoft Windows,使用回车
CR(\r) 和换行LF(\n) 代码的组合作为换行符。要更正问题中给出的示例,添加符号就足够了\r在我看来,更好的选择是使用
Environment.NewLine例如,像这样尝试添加支票
紧接着
在您的特定问题中,第 48 行出现错误是因为您试图拆分一个空行。Split 方法如果在字符串中找不到分隔符,将返回一个包含 1 个元素的数组 - 原始字符串。然后在索引 2 处访问时,您将超出数组范围。为避免这种情况,只需通过 Length 属性检查 Split 后数组中的元素数。