ja7*_*a72 2 c# linq vector operators
如果我有两个数值数组,例如double[] a, b,我想生成第三个数组,每个元素都是添加的a,b我可以用循环来做
double[] a, b, c
// fill in a, b and initialize c
for(int i=0; i<c.Length; i++)
{
c[i] = a[i] + b[i];
}
Run Code Online (Sandbox Code Playgroud)
所以问题是; 有没有办法用LINQ而不是循环?
PS.假设我已经有了二元运算符Func<double,double,doube> add = (x,y)=>x+y;
听起来你只是想要这个Zip方法:
var result = a.Zip(b, add).ToArray();
Run Code Online (Sandbox Code Playgroud)
(当然,这仍将在内部循环 - 但不在您的代码中.)
编辑:Zip仅适用于.NET 4及更高版本,但Eric Lippert关于该主题的博客文章包含示例源代码......或者您可以使用我的Edulinq实现(请参阅相应的博客文章).
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |