Java では、クラス Arrays に約 18 個の静的な「塗りつぶし」メソッドがあり、配列内の各要素に 1 つの値を割り当てる役割を果たします。同じことを達成するためにC#で同等のものを探していますが、同じコンパクトさを持つものは見つかりません:
1)私が理解しているように、ForEachは配列内の要素を値で渡すので、それらを変更することはできません
2) Repeat from Enumerable は新しい配列を作成します。新しい配列を作成してから、配列から各要素をコピーするのはオーバーヘッドのようです
3) for ループはきれいではありません。これが、Java 関係者が最初からこのコンパクトな表記法を導入した理由だと思います。
4) Array クラスの Clear メソッドはすべてを 0 に設定できますが、ゼロを必要な非ゼロ値に変換するにはどうすればよいでしょうか?
Java の構文を示すために、7 の 3 倍を出力する次のコードを考えてみましょう。
int[] iii = {1, 2, 3};
Arrays.fill(iii, 7);
for (int i : iii) {
System.out.println(i);
}