C# 数组上的索引超出范围异常
我正在尝试反转数组。这是我的代码:C# 数组上的索引超出范围异常,c#,C#,我正在尝试反转数组。这是我的代码: using System; class Hello { static void Main() { int[] num = new int[] { 1, 2, 3, 4, 5 }; int index = num.Length - 1; int[] newNum = new int[index]; for (int i = 0; i < num.Length; i++)
using System;
class Hello
{
static void Main()
{
int[] num = new int[] { 1, 2, 3, 4, 5 };
int index = num.Length - 1;
int[] newNum = new int[index];
for (int i = 0; i < num.Length; i++)
{
newNum[i] = num[index]; // error
index--;
Console.WriteLine(newNum[i]);
}
Console.ReadLine();
}
}
然后返回一个错误:
IndexOutOfRangeException未处理
在线:
newNum[i] = num[index];
那行代码怎么了?当我在for循环之前打印
num[0]
时,它工作正常。新数组的长度是4。这意味着我会从0到3
int[] newNum = new int[index];
你的循环将是i=4
当我将4你的代码将崩溃。因为newNum只支持第三个索引
这应该是
int[] newNum = new int[index+1];
是的,您的
newNum
数组比num
数组小一个元素,但是您的循环被编写为与num
长度相同。为什么要这样做?为什么不使用枚举。反向@克罗西:请不要删除相关代码。必须使用系统
命名空间的使用
指令才能编译此代码。Thanks@JonSkeet哦,对不起,我弄错了。不会再发生了。
int[] newNum = new int[index+1];