如何将这个C#lambda表达式转换为VB.Net?

如何将这个C#lambda表达式转换为VB.Net?,c#,vb.net,lambda,C#,Vb.net,Lambda,我正在尝试将我使用过多次的C#lambda转换为VB.Net,但似乎无法找到正确的语法。以下是原始C#代码: 我相信罪魁祸首如下: Function(current, expression) current.Include(expression) 我认为代码转换器(以及我在手动尝试时)没有正确格式化这个lambda表达式 以下是一篇博客文章的链接,介绍了在您需要更多详细信息时使用的方法和目的: 该函数将不会在VB.Net中编译。我得到一个错误,includeExpressions.Aggre

我正在尝试将我使用过多次的C#lambda转换为VB.Net,但似乎无法找到正确的语法。以下是原始C#代码:

我相信罪魁祸首如下:

Function(current, expression) current.Include(expression)
我认为代码转换器(以及我在手动尝试时)没有正确格式化这个lambda表达式

以下是一篇博客文章的链接,介绍了在您需要更多详细信息时使用的方法和目的:


该函数将不会在VB.Net中编译。我得到一个错误,
includeExpressions.Aggregate
调用的参数数不正确。我认为这是由于第二个参数not(lambda)没有正确编译并返回其结果。

我认为如果关闭Strict,应该可以工作,编译器可能不喜欢lambda的返回类型。如果你想严格遵守,这样做也应该有效,我相信:

Public Function [Select](Of E As Class)(ParamArray includeExpressions As Linq.Expressions.Expression(Of Func(Of E, Object))()) As IQueryable(Of E)
        Dim result As IQueryable(Of E) = Nothing

        If includeExpressions.Any() Then
            result = includeExpressions.Aggregate(Context.[Set](Of E)(), (Function(current, expression) CType(current.Include(expression), DbSet(Of E))))
        End If

        Return result
    End Function

lambda的翻译对我来说似乎很好。代码是否编译?如果没有,错误是什么?
Function(current, expression) current.Include(expression)
Public Function [Select](Of E As Class)(ParamArray includeExpressions As Linq.Expressions.Expression(Of Func(Of E, Object))()) As IQueryable(Of E)
        Dim result As IQueryable(Of E) = Nothing

        If includeExpressions.Any() Then
            result = includeExpressions.Aggregate(Context.[Set](Of E)(), (Function(current, expression) CType(current.Include(expression), DbSet(Of E))))
        End If

        Return result
    End Function