Не видел сразу, но проблема в том, что для l oop в то время как (l <длина) l oop. </p>
Для l oop перебирает символы в строка, но l
не изменяется во время этой итерации.
Фиксированная версия вашего кода выглядит следующим образом.
Примечание: строка уже является последовательностью char
s, поэтому вы не нужно конвертировать его ToCharArray ().
char[,] board = new char[counter, length];
int k = 0;
while (((line = file.ReadLine()) != null) && (k < counter))
{
int l = 0;
while (l < length)
{
// line is a string and we can access its characters with indexing
board[k, l] = line[l];
l++;
}
k++;
}