我正在试图完成与here所描述的完全相同的事情,但在VB.NET中
我尝试了所有的C#到VB转换器,但似乎没有人使用LINQ。我完全是C#的新手,所以任何帮助都会受到赞赏!
public static IQueryable<Type> HasID(this IQueryable<Type> query, long? id)
{
return id.HasValue ? query.Where(o => i.ID.Equals(id.Value)) : query;
}
答案 0 :(得分:3)
试试这个:
Public Module MyModule
<Runtime.CompilerServices.Extension()> _
Public Function HasID(ByVal query As IQueryable(Of Type), ByVal id As Long?) As IQueryable(Of Type)
Return If(id.HasValue, query.Where(Function(o) o.ID.Equals(id.Value)), query)
End Function
End Module
在VB.NET中,您应该创建一个模块来创建扩展方法。同时放置Runtime.CompilerServices.Extension属性并从函数定义中删除static和this。
P.S。恨VB:)
答案 1 :(得分:0)
您尝试过哪种转换器?你应该试试Telerik Converter。我已将您的代码复制到他们的转换器中并得到了这个:
<System.Runtime.CompilerServices.Extension> _
Public Shared Function HasID(query As IQueryable(Of Type), id As System.Nullable(Of Long)) As IQueryable(Of Type)
Return If(id.HasValue, query.Where(Function(o As ) i.ID.Equals(id.Value)), query)
End Function
'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Built and maintained by Todd Anglin and Telerik
'=======================================================