我正在开发一个程序,可以对多个栅格数据集执行计算。我可以将每个数据集提取到类型为double的数组中,然后我就能弄清楚如何使用LINQ的动态表达式同时对两个数组执行计算:
Dim rasterAParam As System.Linq.Expressions.ParameterExpression = Expression.Parameter(GetType(Double), "A")
Dim rasterBParam As System.Linq.Expressions.ParameterExpression = Expression.Parameter(GetType(Double), "B")
Dim params As List(Of System.Linq.Expressions.ParameterExpression) = New List(Of ParameterExpression)
params.Add(rasterAParam)
params.Add(rasterBParam)
DIm calcString as String = "A + B * 2"
Dim lambda As LambdaExpression = System.Linq.Dynamic.DynamicExpression.ParseLambda(params.ToArray(), Nothing, calcString)
Dim lambdaFunc As Func(Of Double, Double, Double) = lambda.Compile
rasterContentsA = rasterContentsA.Zip(rasterContentsB, lambdaFunc).ToArray
现在,我需要扩展它,以便可以使用一个语句在3个或更多栅格上执行操作。问题是zip功能一次只能用于两个输入。我注意到lambdaExpression类具有动态调用函数的选项,但这仅适用于单个double值,而不适用于它们的数组。
请问我该怎么做?