public static void Main()
Console.WriteLine("Hello World");
IterateMatrixInSpiralOrder(m2);
public static void IterateMatrixInSpiralOrder(int[,] m)
var size = m.GetLength(0);
for (var i = size; i > 0; i-=2)
SpiralIterationStep(m, start, start, i - 1);
private static void SpiralIterationStep(int[,] m, int startX, int startY, int stepLen)
if (stepLen == 0) Console.WriteLine(m[startX, startY]);
for (var i = startX; i < startX + stepLen; i++) Console.WriteLine(m[startY , i]);
for (var i = startY; i < startY + stepLen; i++) Console.WriteLine(m[i , startX + stepLen]);
for (var i = startX + stepLen; i > startX; i--) Console.WriteLine(m[startY + stepLen, i]);
for (var i = startY + stepLen; i > startY; i--) Console.WriteLine(m[i , startX]);