引用未在空行设置错误

本文关键字:设置 错误 引用 | 更新日期: 2023-09-27 18:09:23

当我从一个文件中读取文件有一个空行时,我得到这个错误,我希望循环停止在空行,但我得到这个错误,我应该怎么做?

string[] delim = new string[] { "," };
bool eof=false;
int k=0;
do
{
   string[] linie =  sr.ReadLine().Split(delim, StringSplitOptions.None);
   if (String.IsNullOrWhiteSpace(linie[0]))
      eof = true;
   else
   {
      A[k] = double.Parse(linie[0]);
      l[k] = Convert.ToInt32(linie[1]);
      c[k] = Convert.ToInt32(linie[2]);
   }
   k++;
 }
 while (!eof);

错误在这里:string[] linie = sr.ReadLine().Split(delim, StringSplitOptions.None); .

引用未在空行设置错误

将语句分成多行:

String line = sr.ReadLine();
if (!String.IsNullOrEmpty(line))
{
    string[] linie = line.Split(delim, StringSplitOptions.None);
    //The rest of your code
}

正如Jeff指出的,如果你有> .Net4,那么你可以使用IsNullOrWhiteSpace

到达文件末尾时,sr.ReadLine()返回null。因此,当您尝试拆分null时,您将得到NullReferenceException

你应该在分割前检查是否为空。

另一种组织could的方法是:

string line;
while ((line = sr.ReadLine()) != null)
{
}