Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数组上的IndexOutOfRangeException_C#_Arrays - Fatal编程技术网

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
不是索引,而是元素本身。在循环的第二次迭代中,您尝试访问索引21
Console.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);
}