Вывод двух ступенчатых массивов по строкам

Есть задание: Дана квадратная целочисленная матрица. Построить два ступенчатых массива, содержащие ненулевые элементы, находящиеся выше и ниже побочной диагонали. Задание сделал, но хочу немного дополнить: чтобы строки выводились не все сразу, а построчно(можно поставить задержку вывода 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]);
                }
            }
        }
    }
}

Ответы (0 шт):