添加/求和两个数组

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

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

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

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; } 

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

 return a.DoStuff(b, (x,y) => x+y) 

或类似的东西?

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

如果不存在简单的方法,那么Linqy最常用的方法是什么? 一个array.each似乎有这样的问题:无法将第二个数组的索引很容易地添加到你正在迭代的那个值中,这让我想知道Linq在那种情况下是否会有任何帮助……

压缩它 :)

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

您可以使用Select方法。

 int[] a = new[] { 1, 2, 3 }; int[] b = new[] { 10, 20, 30 }; var c = a.Select ((x, index) => x + b[index]).ToArray(); 
 public static int[] AddArrays(int[] a, int[] b) { return a.Zip(b, (x,y) => x+y).ToArray(); } 
 IList first = new List { 2, 3, 4, 5 }; IList second = new List { 2, 3, 4, 5 }; var result = Enumerable.Zip(first, second, (a, b) => a + b);