在整数列表中找出2个最大数字的总和

时间:2014-03-12 17:22:50

标签: c#

在c#中,需要选择数组中的最大值并将其加到下一个最小值。

预期输出为5 + 4

foreach中尝试了几种语法,我无法获得准确的输出。寻求帮助

int[] arr =new int[] {1,2,3,4,5};

foreach (int i in arr)
{

}

3 个答案:

答案 0 :(得分:10)

以下一些LINQ应该解决它:

arr.OrderByDescending(z=>z).Take(2).Sum()

请注意,排序很慢,您可能实际上想要找到Max两次......

答案 1 :(得分:3)

var result = (from x in arr orderby x descending select x).Take(2).Sum();

答案 2 :(得分:1)

        int[] arr = new int[] { 1, 2, 3, 4, 5 };
        int max = arr[0];
        int index = -1;
        int total=0;
        for (int i = 1; i < arr.Length; i++)
        {
            if (arr[i] > max)
            {
                max = arr[i];
                index = i;
            }

        }
        if(index != -1) //if you have predecessor
        total = max+arr[index-1];
        else            //if you don't have predecessor
        total = max;