Ошибка в использовании делегатов. В выводе элементов массива одни числа, а в вычислении среднего арифметического другие

Создайте анонимный метод, который принимает в качестве аргумента массив делегатов и возвращает среднее арифметическое возвращаемых значений методов, сообщенных с делегатами в массиве. Методы, сообщенные с делегатами из массива, возвращают случайное значение типа int.

class Program
{

    delegate int MyDelegate();
    delegate double MyDel(MyDelegate[] a);

    static int GetRandom()
    {
        return new Random().Next(1, 10);
    }
    

    static void Main()
    {
        Console.WriteLine("Введите число элементов массива: ");
        int n = int.Parse(Console.ReadLine());
        Console.WriteLine(new string('-', 50));

        var array = new MyDelegate[n];

        for (int i = 0; i < array.Length; i++)
        {
            array[i] = () => new MyDelegate(GetRandom)();
        }

        MyDel d =  delegate(MyDelegate[] a) 
        {
            double sr = 0;
            for (int i = 0; i < a.Length; i++)
            {
                sr += a[i]();
            }
            return sr / array.Length;
        };

        Console.WriteLine("Среднее ариф = {0}", d(array));
        Console.WriteLine(new string('-', 50));

        for (int i = 0; i < array.Length; i++)
        {
            Console.WriteLine(array[i]());
        }
    }
}

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

Автор решения: twintwinterrors

Чтобы получить на экран список чисел, использованных для вычисления результата, нужно было добавить в метод GetRandom() вывод на консоль сгенерированного значения.

static int GetRandom()
{
    Random random = new Random();
    int number = random.Next(1,10);
    Console.WriteLine(number);
    return number;
}
→ Ссылка