使用foreach更改对象

Bro*_*ero 3 c# foreach

这主要是一个理论问题,即我不需要实际的解决方案,但foreach在MS VC#2010中使用以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] ints = new int[7]{0,0,0,0,0,0,0};
           foreach (int i in ints)
           {
                i = 10;

           }
           Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误告诉我,我不能修改我因为它是一个foreach变量,现在如果我想我可以通过许多其他方式完成这个简单的任务但事情是我没有在文档中看到任何不允许的内容我正在尝试做什么,我认为foreach应该让你能够改变列表中的变量.

有什么我想念的吗?

小智 6

如果你foreach在一个集合上,你将获得readonly项目.如果将循环更改为传统for循环,则可以更改数组内容:

  for (int index = 0; index < ints.Length; ++index)
  {
      ints[index] = 10;
  }
Run Code Online (Sandbox Code Playgroud)