int[,] big = new int[100, 100];
int[,] small = new int[10, 10];
int m = n = 0;
// заполнение массива big
.....
.....
// пример: событие onClick
if (small.Length == 0)
{
// вызываем процедуру передачи
}
else
{
// очищаем массив
// вызываем процедуру передачи
}
// процедура передачи из одного массива в другой
for (int i = 0; i < small.Length; i++)
{
for (int j = 0; j < small.Length; j++)
{
small[i][j] = big[i+n][j+m]
}
}
n += 5;
m += 5;
// Вместо переменных можно использовать параметры метода
int leftBorderIndex = ...; // Координаты угла квадрата
int topBorderIndex = ...;
int leftShift = ...; // Сдвиг влево
int topShift = ...; // Сдвиг вправо
int[100,100] largeArr= ...;
int[10,10] smallArr = ...;
int cornerLeft = leftBorderIndex + leftShift; // Координаты лево-верхнего угла квадрата, откуда копируем данные
int cornerTop = topBorderIndex + topShift; // Вставить проверки на выход из границ большого массива
for(int row = cornerTop, i=0; row<cornerTop+10;row++, i++) // Проверить инициализацию и инкремент двойных команд
{
for(int col = cornerLeft, j=0; col<cornerLeft+10; col++,j++)
{
smallArr[i,j] = largeArr[row,col];
}
}