这个foreach在c#中有什么用?

ala*_*ere 5 c# foreach loops compiler-errors

(编辑:代码略微整洁.)

使用像这样的foreach工作正常.

var a = new List<Vector2>();

a.ForEach(delegate(Vector2 b) {
    b.Normalize(); });
Run Code Online (Sandbox Code Playgroud)

然而,以下原因导致"方法没有重载'ForEach'需要1个参数".

byte[,,] a = new byte[2, 10, 10];

a.ForEach(delegate(byte b) {
    b = 1; });
Run Code Online (Sandbox Code Playgroud)

Ser*_*ier 0

原始数组的实例方法比通用集合少得多,因为它们不是模板化的。这些方法,例如ForEach()Sort()通常被实现为本身模板化的静态方法。

在这种情况下,Array.Foreach(a, action)将解决数组的问题。

当然,经典方法foreach(var b in a)适用于列表和数组,因为它只需要一个枚举器。

然而:

  1. 我不确定你如何循环多维数组。
  2. 你的任务(b=1)不会成功。因为您收到的是一个值,而不是一个引用。