C# Streamreader和;索引超出了数组的边界;错误
我没有写入任何数组长度,但是当我尝试读取.csv文件时,我得到了“索引超出了数组的边界”错误。csv文件大约有1000行。是否有人修复此代码 .csv文件行如下所示 0000000,26.0000000000000,38.0000000000000,30.01.2017,0,0,0,0,0,0,0,0,0,0C# Streamreader和;索引超出了数组的边界;错误,c#,arrays,csv,streamreader,C#,Arrays,Csv,Streamreader,我没有写入任何数组长度,但是当我尝试读取.csv文件时,我得到了“索引超出了数组的边界”错误。csv文件大约有1000行。是否有人修复此代码 .csv文件行如下所示 0000000,26.0000000000000,38.0000000000000,30.01.2017,0,0,0,0,0,0,0,0,0,0 我只是想为所有来到这里的人澄清一下答案 while ((data=sr.ReadLine()) !=null) { read = d
我只是想为所有来到这里的人澄清一下答案
while ((data=sr.ReadLine()) !=null)
{
read = data.Split(seperators, StringSplitOptions.None);
if (read.Length >= 11)
{
float x = float.Parse(read[1]);
float y = float.Parse(read[2]);
string z = read[10];
}
}
访问可能不是所需长度的数组时,请先检查它
索引超出了数组的界限
只有当一行代码试图访问数组中不存在的项(N-1)时才会引发异常-因为在调试模式下,数组中的项少于(N),请查看这些行float x=float.Parse(读取[1]);float y=float.Parse(读[2]);字符串z=读取[10]代码>如果read.Length>=11,您可能需要一个if条件。在调试模式下,这些行中没有错误。在调试模式下,visual studio中的一切看起来都是正确的。这是运行时错误,请在此行上放置断点,并检查是否存在read.Length>=11
,因为read.Length>=11的@Ben saidif条件适用于代码。非常感谢你的帮助。
while ((data=sr.ReadLine()) !=null)
{
read = data.Split(seperators, StringSplitOptions.None);
if (read.Length >= 11)
{
float x = float.Parse(read[1]);
float y = float.Parse(read[2]);
string z = read[10];
}
}