无法返回最大元素

0 c#

我试图使用递归从数组返回最大元素
这里是我的代码

    static void Main(string[] args)
    {
        int[] Array=new int[]{10,233,34};

        int _MaxVal = CalculateMax(Array, 0, 0);
        Console.WriteLine(_MaxVal);
        Console.ReadKey();

    }

    private static int CalculateMax(int[] Array, int Startpos, int maxval)
    {
        if (Startpos != Array.Length)
        {
            if (Array[Startpos] > maxval)
            {
                maxval = Array[Startpos];
            }


            CalculateMax(Array, ++Startpos, maxval);
        }

        return maxval;
    }
Run Code Online (Sandbox Code Playgroud)

我得到MaxVal为10.

这有什么问题?

谢谢大家

Gra*_*ICA 7

你失去了价值maxval.

试试这个:

maxval = CalculateMax(Array, ++Startpos, maxval);
Run Code Online (Sandbox Code Playgroud)

除非您将此作为个人练习或作业,否则您可以使用LINQ更优雅地处理这种方式:

var maxValue = Array.Max();
Run Code Online (Sandbox Code Playgroud)