【发布时间】:2017-01-23 09:40:10
【问题描述】:
我试图通过循环并将 CSV 放入二维数组。
由于var tokens = sr.ReadLine().Split(',');,我的应用程序崩溃它抛出了 NullPointerException。我该如何解决这个问题?
下面是我的整个方法,名为 csvToArray:
public string[,] csvToArray (string filePath)
{
int col = colCount(filePath);
int row = rowCount(filePath);
string line;
string[,] data = new string[col, row];
using (StreamReader sr = new StreamReader(filePath))
{
for (int i = 0; i < col; i++)
{
var tokens = sr.ReadLine().Split(',');
for (int j = 0; j < row; j++)
{
data[i, j] = tokens[j];
}
}
}
return data;
}
【问题讨论】:
-
我认为循环的行和列应该交换
-
尝试在
var tokens = sr.ReadLine().Split(',');之前添加一个简单的if (sr != null)检查。或者可选var line = sr.ReadLine()和if (sr != null && !string.IsNullOrWhiteSpace(line))。 -
@KeyurPATEL 我的 CSV 文件有空白值。这会导致拆分问题吗?
-
如果有任何空白值,这将确保您不会抛出异常。此外,由于异常发生在拆分行上,我认为这是由于您尝试拆分空白值。在任何情况下,
if条件都会对您有所帮助。
标签: c# .net csv multidimensional-array webforms