C# 数组上的IndexOutOfRangeException
我想要像这样的输出C# 数组上的IndexOutOfRangeException,c#,arrays,C#,Arrays,我想要像这样的输出 int[] arr=new int[10]{1,21,32,43,54,65,76,87,98,10}; foreach(var i in arr) { Console.WriteLine("Elements [{0}]:{1}",arr[i],i); } 仅使用foreach,但我得到以下错误: 未处理的异常:System.IndexOutOfRangeException:索引为 在数组的边界之外。在0[ERROR]中的Exercise
int[] arr=new int[10]{1,21,32,43,54,65,76,87,98,10};
foreach(var i in arr)
{
Console.WriteLine("Elements [{0}]:{1}",arr[i],i);
}
仅使用foreach
,但我得到以下错误:
未处理的异常:System.IndexOutOfRangeException:索引为
在数组的边界之外。在0[ERROR]中的Exercise1.Main()处出现致命的未处理异常:
System.IndexOutOfRangeException:索引超出了
大堆在0中的Exercise1.Main()处
i
不是索引,而是元素本身。在循环的第二次迭代中,您尝试访问索引21Console.WriteLine(“元素[{0}]:{1}”,arr[21],21)
,但它并不存在
更改为循环的
element[0]: 1
element[1]: 21
...
element[9]: 10
int[]arr=newint[10]{1,21,32,43,54,65,76,87,98,10};
对于(int i=0;i
试着这样做:
int[] arr = new int[10] { 1, 21, 32, 43, 54, 65, 76, 87, 98, 10 };
for (int i =0;i< arr.Length;i++)
{
Console.WriteLine("Elements [{0}]:{1}",i ,arr[i]);
}
foreach
关键字不返回元素的“索引”。它返回元素
int j =0;
foreach(var i in arr)
{
Console.WriteLine("Elements [{0}]:{1}",j,i);
j++;
}
在C#(与go不同)中,没有直接的构造返回i
索引加上元素arr[i]
。您可以有一个(i
使用for
循环,并从那里获得arr[i]
)或另一个(使用foreach
)
将您编写的内容与string
s数组进行比较,查看其不合逻辑性:
int[] arr = new int[] {1,21,32,43,54,65,76,87,98,10};
foreach (var el in arr)
{
Console.WriteLine("Element {0}", el);
}
谢谢你,伙计,它帮助我学习。
string[] arr = new string[] {"1","21","32","43","54","65","76","87","98","10"};
foreach (var el in arr)
{
Console.WriteLine("Element {0}", el);
}