Oba są dobre.
Forech jedzie od początku do końca w tablicy nieźależnie od ilości wymiarów.
namespace TestMode
{
public class MainClass
{
public static void Main ()
{
int start = 0;
int [,] tab = new int[10,10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++) {
tab [i,j] = start;
start++;
}
foreach (int element in tab) {
Console.WriteLine (element);
}
Console.ReadKey ();
}
}
}