添加/求和两个数组

Chr*_*ris 36 c# linq

我遇到了一个纯粹假设的问题,如果我找到合适的linq方法,感觉它有一个简单的解决方案......

我有两个整数阵列,我知道它们的大小相同.我想创建一个相同大小的第三个数组,其中第三个数组中的元素是相应位置中前两个数组中元素的总和.

下面是一个应该显示我想要做的方法.

public static int[] AddArrays(int[] a, int[] b)
{
    int[] newArray = new int[a.Length];
    for (int i = 0; i<a.Length; i++)
    {
        newArray[i]=a[i]+b[i];
    }
    return newArray;
}
Run Code Online (Sandbox Code Playgroud)

有没有我可以使用的Linq方法

return a.DoStuff(b, (x,y) => x+y)
Run Code Online (Sandbox Code Playgroud)

或类似的东西?

我应该注意,这可能属于家庭作业的类别,因为最初的问题来自我正在看的网站(虽然我找不到问题的直接链接)而不是我需要工作或任何事情的问题.

如果没有简单的方法,那么Linqy最常用的方法是什么?一个array.each似乎都没有能够索引第二阵列容易添加值您通过领导让我怀疑是否LINQ的将是任何帮助,在这种情况下,在所有迭代一个问题...

Ank*_*kur 52

压缩它 :)

var a = new int[] {1,2,3 };
var b = new int[] {4,5,6 };
a.Zip(b, (x, y) => x + y)
Run Code Online (Sandbox Code Playgroud)


Tom*_*ers 14

您可以使用Select方法.

int[] a = new[] { 1, 2, 3 };
int[] b = new[] { 10, 20, 30 };

var c = a.Select ((x, index) => x + b[index]).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 该索引由LINQ进程提供. (3认同)

小智 5

public static int[] AddArrays(int[] a, int[] b)

{
     return a.Zip(b, (x,y) => x+y).ToArray();
}
Run Code Online (Sandbox Code Playgroud)