Вывод двух ступенчатых массивов по строкам
Есть задание: Дана квадратная целочисленная матрица. Построить два ступенчатых массива, содержащие ненулевые элементы, находящиеся выше и ниже побочной диагонали.
Задание сделал, но хочу немного дополнить: чтобы строки выводились не все сразу, а построчно(можно поставить задержку вывода 1-2 сек.). Например(прикрепил скриншот):сначала выводятся строки 52 63 -38 32 верхнего массива и 38 -65 -76 1 нижнего массива, потом 69 -12 1 верхнего и -12 69 32 нижнего и т.д. Как я могу это реализовать?

Вот код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace lab4._0
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonStart_Click(object sender, EventArgs e)
{
if (textBoxSize.Text == "")
{
MessageBox.Show("Введите размер матрицы");
return;
}
if (textBoxSize.Text.Contains(" "))
{
MessageBox.Show("Матрица квадратная, введите одно число!");
return;
}
int count = int.Parse(textBoxSize.Text);
int[][] firstArray = new int[ count - 1][];
int[][] secondArray = new int[ count - 1][];
// Array.Copy(firstArray, 0, secondArray, 0, count-1);
dataGridViewResult.RowCount = dataGridViewResult.ColumnCount = count;
firstArrayInit(count, firstArray);
secondArrayInit(count, secondArray);
printGrid(count, firstArray, secondArray);
}
private void firstArrayInit(int count, int[][] firstArray)
{
var rand = new Random();
for (int i = 0, j = count - 1; j != 0; ++i, --j)
{
firstArray[i] = new int[j];
}
for (int i = 0; i < count - 1; ++i)
{
for (int j = 0; j < firstArray[i].GetLength(0); ++j)
{
firstArray[i][j] = rand.Next(-100, 100);
}
}
}
private void secondArrayInit(int count, int[][] secondArray)
{
var rand = new Random();
for (int i = 0, j = count - 1; j != 0; ++i, --j)
{
secondArray[i] = new int[i + 1];
}
for (int i = 0; i < count - 1; ++i)
{
for (int j = 0; j < secondArray[i].GetLength(0); ++j)
{
secondArray[i][j] = rand.Next(-100, 100);
}
}
}
private void printGrid(int count, int[][] firstArray, int[][] secondArray)
{
for (int i = 0; i < count - 1; ++i)
{
for (int j = 0; j < firstArray[i].GetLength(0); ++j)
{
dataGridViewResult.Rows[i].Cells[j].Value = Convert.ToString(firstArray[i][j]);
}
}
for (int i = 0; i < count; ++i)
{
dataGridViewResult.Rows[i].Cells[count - i - 1].Value = Convert.ToString(0);
}
for (int i = 1; i < count; ++i)
{
for (int j = 0; j < secondArray[i - 1].GetLength(0); ++j)
{
dataGridViewResult.Rows[i].Cells[count - j - 1].Value = Convert.ToString(secondArray[i - 1][j]);
}
}
}
}
}