Нахождение наименьшего элемента массива через рекурсию. С#

Помогите найти решение проблемы, не работает рекурсия по нахождению минимального элемента массива. А по заданию нужно найти минимальный элемент именно через рекурсию.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _4_laba_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, i;
            double x;
            Console.WriteLine("Введите число элементов массива");
            n = Convert.ToInt16(Console.ReadLine());
            double[] Data = new double[n];
            for (int a = 0; a < n; a = a + 1)
            {
                Console.WriteLine("Введите элемент массива");
                Data[a] = double.Parse(Console.ReadLine());
                Console.WriteLine();
            }
            i = 0;
            x = Massiv(Data, i);
            Console.WriteLine(x);
            Console.Read();
        }
        public static double nol;
        public static double Massiv(double[] Data, int i)
        {
            if (i < Data.Length)
            {
                if (Data[i] < nol)
                {
                    nol = Data[i];
                    i++;
                    return Massiv(Data, i);
                }
            }
            if (i >= Data.Length)
            {
                return nol;
            }
            else
            {
                i++;
                return Massiv(Data, i);
            }
        }
    }
}

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

Автор решения: Igor
public static double findMin(double[] data, int i) {
  if (i < data.Length - 1) {
    dobule a = findMin(data, i + 1);
    return a < data[i]? a : data[i];
  } else {
    return data[data.Length - 1];
  }
}

x = findMin(Data, 0);
→ Ссылка