Учитывая следующий код С#:
int[,] array2D = new int[10, 10];
int sum = 0;
foreach (var i in array2D)
{
sum += i;
}
Возникает вопрос: что вызывает правильный тип i
как int
?
Это не является обходным, поскольку array2D является прямоугольным массивом. Он не реализует IEnumerable<int>
. Он также реализует метод GetEnumerator()
, который возвращает System.Collections.IEnumerator
. Поэтому я ожидал бы, что i
будет иметь тип object
.
Мой код использует .net 4.03.
Связанный вопрос SO: Почему С# многомерные массивы не реализуют IEnumerable?.