C# 从连续的int数组元素创建对值

C# 从连续的int数组元素创建对值,c#,arrays,C#,Arrays,我需要对数组中的第一个和第二个、第三个和第四个、第五个和第六个元素求和。 例如,如果我得到作为输入的int[]{1,2,0,3,4,-1},我需要将它计算为新的int[]{3,3,3} using System; class Program { static void Main() { int[] Arr = new int[] {1, 2, 0, 3, 4, -1}; int sum = 0; foreach(int index in Arr) {

我需要对数组中的第一个和第二个、第三个和第四个、第五个和第六个元素求和。 例如,如果我得到作为输入的int[]{1,2,0,3,4,-1},我需要将它计算为新的int[]{3,3,3}

using System;

class Program
{
static void Main()
{
    int[] Arr = new int[] {1, 2, 0, 3, 4, -1};
    int sum = 0;
    foreach(int index in Arr)
    {
        //sum = (Arr[index at 0 position] + Arr[item at 0 position + 1]); 
        //Then do nothing with Arr[index at 1 position]
        //Then sum Arr[index at 2 position] + Arr[item at 3 position];
        //Then do nothing with Arr[index at 4 position]

        //if I test this condition
        // if(Arr[index]%2==0) //here I want to test the actual index of the element, not the value behind the index
        //{skip the next Arr[index]}
        //else{ sum Arr[index]+Arr[index + 1] }



    }
}   

}

这将对每对进行汇总,如果长度为奇数,则保留最后一对:

int[] Arr = new int[] { 1, 2, 0, 3, 4 };
int ExactResultLength = (int)(((double)Arr.Length / 2) + 0.5);
int[] res = new int[ExactResultLength];

int j = 0;
for (int i = 0; i < Arr.Length; i+= 2)
{
    if(i + 1 < Arr.Length)
        res[j] = Arr[i] + Arr[i+1];
    else
        res[j] = Arr[i];

    j++;
}
int[]Arr=newint[]{1,2,0,3,4};
int ExactResultLength=(int)((双精度)Arr.Length/2)+0.5);
int[]res=新int[ExactResultLength];
int j=0;
对于(int i=0;i
这将对每对进行汇总,如果长度为奇数,则保留最后一对:

int[] Arr = new int[] { 1, 2, 0, 3, 4 };
int ExactResultLength = (int)(((double)Arr.Length / 2) + 0.5);
int[] res = new int[ExactResultLength];

int j = 0;
for (int i = 0; i < Arr.Length; i+= 2)
{
    if(i + 1 < Arr.Length)
        res[j] = Arr[i] + Arr[i+1];
    else
        res[j] = Arr[i];

    j++;
}
int[]Arr=newint[]{1,2,0,3,4};
int ExactResultLength=(int)((双精度)Arr.Length/2)+0.5);
int[]res=新int[ExactResultLength];
int j=0;
对于(int i=0;i
假设您不关心没有对的元素:

int[] Arr = new int[] {1, 2, 0, 3, 4, -1};
int[] Arr2 = new int[Arr.Length / 2];

for (int i = 0; i < Arr2.Length; i++)
    Arr2[i] = Arr[i * 2] + Arr[i * 2 + 1];

并将
Arr2
的长度更改为
Arr.Lenght/2+1

,假设您不关心没有对的元素:

int[] Arr = new int[] {1, 2, 0, 3, 4, -1};
int[] Arr2 = new int[Arr.Length / 2];

for (int i = 0; i < Arr2.Length; i++)
    Arr2[i] = Arr[i * 2] + Arr[i * 2 + 1];

同时将
Arr2
的长度更改为
Arr.Lenght/2+1

在这种情况下,使用普通for循环而不是foreachIn在这种情况下,使用普通for循环而不是foreachIn这就像说,如果数字是奇数,那么(数字+1)/2假设你想保留最后一个没有对可添加的数字。这就像说,如果数字是奇数,那么(数字+1)/2假设您想保留最后一个没有对可添加的数字。