Зацикливание значений в двумерном массиве с циклом foreach?

Поэтому я пытаюсь зациклить значения в двумерном массиве, используя foreach. Я знаю, что код должен выглядеть примерно так.

        int calc = 0;
        int[,] userfields = new int[3,3];

        foreach (int userinput in userfields)
        {

            Console.Write("Number {0}: ", calc);
            calc++;
            userfields[] = Convert.ToInt32(Console.ReadLine());
        }

Это насколько я могу получить. Я пытался с помощью

userfields[calc,0] = Convert.ToInt32(Console.ReadLine());

но, видимо, это не работает с двумерными массивами. Я относительно новичок в C# и пытаюсь учиться, поэтому я ценю все ответы.

Заранее спасибо!

1 ответ

Решение

Это двумерный массив, как следует из названия, он имеет два измерения. Поэтому вам нужно указать два индекса, когда вы хотите присвоить значение. Подобно:

// set second column of first row to value 2
userfield[0,1] = 2; 

В этом случае, вероятно, вы хотите цикл for:

for(int i = 0; i < userfield.GetLength(0); i++)
{
    for(int j = 0; j < userfield.GetLength(1); j++)
    {
       //TODO: validate the user input before parsing the integer
       userfields[i,j] = Convert.ToInt32(Console.ReadLine());
    }
}

Для получения дополнительной информации взгляните на:

Другие вопросы по тегам