реализация IEnumerable не является опцией
Судя по приведенному вами описанию, конечно, это так - хотя я не вполне уверен, что выпытаюсь сделать.Но если это просто избавление от вызова ToJaggedArray()
:
public class YourClass : IEnumerable
{
// ...
public IEnumerator GetEnumerator()
{
for (int i = 0; i < Rows; i++)
{
Field[] result = new Field[Columns];
for (int j = 0; j < Columns; j++)
{
result[j] = this[i, j];
}
yield return result;
}
}
}
Пример вывода (с использованием int[3,3]
вместо Field[,]
):
[[2,4,6],[1,2,3],[3,7,9]]
Каждая итерация завершаетсяIEnumerable
просто возвращает текущую строку в виде одномерного массива, Field[]
(или в примере int[]
).
Обновление: еще один параметр
Требуется больше работы, но вы также можете реализовать свой собственный JsonResult
, который добавляет настраиваемый конвертер в сериализатор, используя JavascriptSerializer.RegisterConverters , но это кажется слишком сложным, чтобы избавиться от прямоговызов метода.