访问数组中的数据时出现C#IndexOutOfRangeException

时间:2015-02-10 15:14:54

标签: c# arrays indexoutofrangeexception

我有以下代码:

String[] enteteSplit = new String[48];
enteteSplit = entete.Split(';');
enteteSplit[35] = enteteSplit[35].Replace(',', '.');

entete是一个字符串。 第三行是抛出一个IndexOutOfRangeException,我无法解决这个问题,有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

当你拨打这一行时

enteteSplit = entete.Split(';');

你实际上正在创建一个不包含48个元素的数组,但只包含以分号字符分割字符串的元素。

所以如果你的字符串是

entete = "test;test1;test2";
enteteSplit = entete.Split(';');

结果数组只有3个元素,因此尝试到达第35个元素会导致IndexOutOfRange异常

您需要在此处引入安全检查

if(enteteSplit.Length > 35)
   enteteSplit[35] = enteteSplit[35].Replace(',', '.');