これは一般的なプログラミングの質問です。
double forループを介して2次元配列を反復処理することは「恐ろしい」「醜い」などであるという多くの投稿を見てきました...これはなぜですか?
配列は辞書などに比べて効率的なデータ構造ではありませんか?また、foreach やその他の代替手段よりも double for ループの方が効率的ではありませんか? また、2D 配列を使用している場合は、2D 座標系を扱っていることがよくあります。x と y の位置は、配列のインデックスとしてデータ構造に既に「組み込まれている」ため (たとえば、辞書キーとしてタプルを追加する必要はありません)、for ループ パラメーターを変更することで、非常に安価に反復できます。繰り返したくない部分を完全に無視しながら、グリッドのさまざまな部分を通過します。たとえば、「外側」の行と列を避けるには..
for (int x = 1; x < Grid.GetLength(0)-1; x++)
{
for (int y = 1; y < Grid.GetLength(1)-1; y++)
{
Grid[x,y].DoSomething();
}
}
foreach を使用すると、コレクション内のすべてを反復処理してから、必要な座標範囲内にあるかどうかを確認する必要があります。