在c#中,需要选择数组中的最大值并将其加到下一个最小值。
预期输出为5 + 4
在foreach
中尝试了几种语法,我无法获得准确的输出。寻求帮助
int[] arr =new int[] {1,2,3,4,5};
foreach (int i in arr)
{
}
答案 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;