我如何使用LINQ将计算应用于多个数组

时间:2018-12-04 03:00:14

标签: vb.net linq

我正在开发一个程序,可以对多个栅格数据集执行计算。我可以将每个数据集提取到类型为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值,而不适用于它们的数组。

请问我该怎么做?

0 个答案:

没有答案