C#foreach 语句为什么会出现索引越限的?

      static void Main(string[] args)
    { 
       Console.WriteLine("输入一个整数");
        int mun = int.Parse(Console.ReadLine());
        int[] number = new int[mun];
        Console.WriteLine("数组长度包含有");
        for (int i = 0; i< mun; i++)
        {
            number[i] = i + 1;    
            //如果在这加上Console.WriteLine(number[i]);就可以实现我要的效果。
        }
        foreach (int c in number)                   //在这里用foreach就会越限报错???为什么了?      
        {
            Console.WriteLine(number[c]);           //就这里越限了。求解
        }
        Console.ReadKey();

}

C#不熟,但是for...each循环在各种语言中应该都是直接遍历数组元素的吧,你怎么还能用c做下标?应该直接打印c才对
for...each之所以被称为增强型for循环不就是因为可以直接遍历一个集合的元素而不像正常需要用下标和数组长度进行遍历

img
效果图片

要从0开始

假如输入的整数是3,那么number数组里的值有1,2,3,也就是在foreach中,c的值分别为1,2,3,但是对于长度为3的number数组,其索引应该是0,1,2,所以越限了

抱歉一时没想起来foreach语句的用法,用错了
正确的来说应该要这么写 foreach(int c int number){console.writline(c)}只要用C这个循环变量就可以了