static void Main()
        {
            // Enable Unicode
            Console.OutputEncoding = Encoding.Unicode;

            //// випадкові числа
            //Random rnd = new Random();

            // задаємо певну кількість делегатів
            int countDel = rnd.Next(1, 10);

            // створюємо масив делегатів
            DelRandom[] delRandoms = new DelRandom[countDel];

            // заповнення масива делегатами із зв'язуванням
            // з певним методом який видає випадкове число
            for (int i = 0; i < delRandoms.Length; i++)
            {
                delRandoms[i] = Method;
            }

            // анонімний метод, який приймає масив делегатів
            // і розраховує їх середнє арифметичне
            DelAvarage delAvarage = delegate(DelRandom[] delegates)
            {
                Console.WriteLine("\nЗгенеровані значення:\n");
                int sum = 0;
                for (int i = 0; i < delegates.Length; i++)
                {
                    int temp = delegates[i]();
                    sum += temp;
                    Console.WriteLine($"\t{temp:N0}");
                }

                return((double)sum / delegates.Length);
            };

            // передача масиву делегатів, для розрахунку середнього арифметичного
            double res = delAvarage(delRandoms);

            Console.WriteLine("\nСереднє арифметичне:");
            Console.Write($"\n\t{res:N2}");

            // повторення
            DoExitOrRepeat();
        }
        static void Main()
        {
            // Enable Unicode
            Console.OutputEncoding = Encoding.Unicode;

            // випадкові числа
            Random rnd = new Random();

            // анонімний метод, який приймає масив делегатів
            // і розраховує їх середнє арифметичне
            DelAvarage delAvarage = delegate(List <DelRandom> delegates)
            {
                int sum = 0;
                foreach (var i in delegates)
                {
                    sum += i();
                }

                return((double)sum / delegates.Count);
            };

            // внутрішній делегат, який повертає випадкове значення int
            // такий варіант не підходить, томущо скільки раз визивається,
            // стільки раз і будуть перегенеровуватись значення
            //DelRandom delRandom = () => rnd.Next(sbyte.MinValue, sbyte.MaxValue);

            // задаємо певну кількість делегатів
            int countDel = rnd.Next(1, 10);

            // створюємо для стабільності масив значень
            List <int> array = new List <int>();

            // заповнюємо масив
            for (int i = 0; i < countDel; i++)
            {
                array.Add(rnd.Next(sbyte.MinValue, sbyte.MaxValue));
            }

            // створюєм масив внутрішніх делегатів
            List <DelRandom> delRandoms = new List <DelRandom>();

            // заповнення масиву делегатів
            foreach (var i in array)
            {
                delRandoms.Add(() => i);
            }

            // передача масиву делегатів, для розрахунку середнього арифметичного
            double res = delAvarage(delRandoms);

            // виведення результату
            Console.WriteLine("\nЗгенеровані значення:\n");
            foreach (var i in array)
            {
                Console.WriteLine($"\t{i:N0}");
            }

            Console.WriteLine("\nСереднє арифметичне:");
            Console.Write($"\n\t{res:N2}");

            // повторення
            DoExitOrRepeat();
        }