Как найти минимальный элемент массива и его порядковый номер в c#

Дан массив 20х20. Заполняем его рандомно. После нужно найти минимальное значение в нем и его порядковый номер.

public static void Main(string[] args)
        {
            int[,] massiv = new int[20, 20];
            Console.WriteLine("Значение массива");
            Random rand = new Random();

            for (int x = 0; x < 20; x++)
            {
                for (int y = 0; y < 20; y++)
                {
                    int t;
                    t = 23;
                    massiv[x, y] = rand.Next(t++);
                }
            }

            for (int x = 0; x < massiv.GetLength(0); x++) 
            {
                for (int y = 0; y < massiv.GetLength(1); y++)
                {
                        Console.Write(massiv[x,y] + "\t");
                }
               Console.WriteLine("");
            }

Написал как вывести минимальное значение

static int MinElement(int[,] massiv)
            {
                int minElement = massiv[0, 0];
                for (int i = 0; i < massiv.GetLength(0); i++)
                {
                    for (int j = 0; j < massiv.GetLength(1); j++)
                    {
                        if (minElement > massiv[i, j])
                        {
                            minElement = massiv[i, j];
                        }
                    }
                }
                return minElement;
            }
Console.WriteLine("Минимальный элемент массива: {0}", MinElement(massiv));

Пробовал в цикл добавить возврат i,j, но ничего не получается. Как решить данную проблему?

static int MaxElement(int[,] massiv)
            {
                int maxElement = massiv[0, 0];
                int x, y;
                x = 0;
                y = 0;
                for (int i = 0; i < massiv.GetLength(0); i++)
                {
                    for (int j = 0; j < massiv.GetLength(1); j++)
                    {
                        if (maxElement < massiv[i, j])
                        {
                            maxElement = massiv[i, j];
                            
                            // x = i;
                            //y = j;
                            //Console.Write("no" + i + " " + j);
                            
                        }
                    }
                }
                return maxElement;
            }

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

Автор решения: Vitaliy Zlobin
namespace MyApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var nums = new int[2, 3] { { 0, 1, 2 }, { 3, 4, 5 } };
            var indices = GetIndexesOfMinimumElement(nums);
            var i = indices.Item1;
            var j = indices.Item2;

            Console.WriteLine($"Минимальный элемент массива: {nums[i, j]}. i = {i}, j = {j}");
        }

        static (int, int) GetIndexesOfMinimumElement(int[,] array)
        {
            var minElement = array[0, 0];
            var result = (0, 0);

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (minElement > array[i, j])
                    {
                        minElement = array[i, j];

                        result = (i, j);
                    }
                }
            }

            return result;
        }
    }
}
→ Ссылка