访问数组中的数据时出现 C# IndexOutOfRangeException
C# IndexOutOfRangeException while accessing datas in array
我有以下代码:
String[] enteteSplit = new String[48];
enteteSplit = entete.Split(';');
enteteSplit[35] = enteteSplit[35].Replace(',', '.');
其中 entete 是一个字符串。
第 3 行抛出 IndexOutOfRangeException,我无法解决这个问题,有什么想法吗?
非常感谢。
当你调用这条线时
enteteSplit = entete.Split(';');
您正在有效地创建一个数组,其中不包含更多 48 个元素,而只包含在分号字符处拆分字符串所获得的元素。
所以如果你的字符串是
entete = "test;test1;test2";
enteteSplit = entete.Split(';');
生成的数组只有 3 个元素,因此尝试到达第 35 个元素会导致 IndexOutOfRange 异常
这里需要引入安全检查
if(enteteSplit.Length > 35)
enteteSplit[35] = enteteSplit[35].Replace(',', '.');
我有以下代码:
String[] enteteSplit = new String[48];
enteteSplit = entete.Split(';');
enteteSplit[35] = enteteSplit[35].Replace(',', '.');
其中 entete 是一个字符串。 第 3 行抛出 IndexOutOfRangeException,我无法解决这个问题,有什么想法吗?
非常感谢。
当你调用这条线时
enteteSplit = entete.Split(';');
您正在有效地创建一个数组,其中不包含更多 48 个元素,而只包含在分号字符处拆分字符串所获得的元素。
所以如果你的字符串是
entete = "test;test1;test2";
enteteSplit = entete.Split(';');
生成的数组只有 3 个元素,因此尝试到达第 35 个元素会导致 IndexOutOfRange 异常
这里需要引入安全检查
if(enteteSplit.Length > 35)
enteteSplit[35] = enteteSplit[35].Replace(',', '.');