Array.ForEachメソッドを使うと、配列の要素を列挙してすべての要素に対して同一の処理を施すことが出来ます。 このメソッドでは、処理を記述したメソッドをActionデリゲートの形式で指定することで、配列内の個々の要素を引数としてそのメソッドが呼び出されます。 foreach文の内側でメソッド呼び出しを行う代わりに、このメソッドを使ってより簡単に記述することが出来ます。
Array.ForEachメソッドを使って配列内の全要素を列挙する
using System;
class Sample {
// 引数の値をゼロ埋めして表示
static void Print(int val)
{
Console.WriteLine("{0:D3}", val);
}
static void Main()
{
int[] arr = {0, 1, 2, 3, 4};
// 配列内の値をゼロ埋めして表示
Array.ForEach(arr, Print);
Console.WriteLine();
// 上記の処理をforeach文で記述した場合
foreach (var elem in arr) {
Print(elem);
}
}
}
実行結果
000 001 002 003 004 000 001 002 003 004
このメソッドは配列内の各要素を列挙するだけであるため、元の配列に変更を加えるような処理を行うことは出来ません。 そういった処理を行いたい場合はfor文やArray.ConvertAllメソッドを使います。