Consider how this code breaks out in the context of a C# Console application:
a. get the number of rows and columns
a.1 create two integer variables,
int rows, columns;
a.2 write a 'while loop that keeps going until the user enters two valid integers for rows/columns
bool arrayParamsIncomplete = true;
while (arrayParamsIncomplete)
{
arrayParamsIncomplete = false;
}
b. Use a similar 'while loop to handle the task of reading values in a way that makes sense to you: row by row ? Use String.Split to get the values into an array of 'String, and then use 'Int32.TryParse to validate each entry.
I think you are closer to a solution than you know.