使用foreach更改对象

时间:2011-06-05 16:23:28

标签: c# foreach

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

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();
        }
    }
}

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

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:6)

如果你foreach超过一个集合,你将获得只读的项目。如果将循环更改为传统的for循环,则可以更改数组内容:

  for (int index = 0; index < ints.Length; ++index)
  {
      ints[index] = 10;
  }

答案 1 :(得分:2)

使用for循环,并使用ints [i]

修改值