什么是VB.NET相当于这个C#代码?

时间:2010-03-09 18:47:26

标签: vb.net c#-to-vb.net

VB.NET相当于这个C#代码?

    ctx.Load(site,
                x => x.Lists.Where(l => l.Title != null));

我试过

 ctx.Load(site, Function(x) x.Lists.Where(Function(l) l.Title IsNot Nothing))

"The expression (Convert(l.Title) != null) is not supported."

出现此错误

思想

4 个答案:

答案 0 :(得分:2)

如果Title是字符串,请尝试使用IsNullOrEmpty();

Nullable(Of T).HalValue如果Title可以为Nullable

Sub Main()

        Dim list As New List(Of A)

        Dim a1 As New A
        a1.Title = "sqws"
        Dim a2 As New A
        a2.Title = Nothing


        list.Add(a1)
        list.Add(a2)

        Dim q = From c In list Where c.Title IsNot Nothing

    End Sub



    Public Class A

        Dim t As String

        Public Property Title() As String
            Get
                Title = t
            End Get
            Set(ByVal value As String)
                t = value
            End Set
        End Property

    End Class

答案 1 :(得分:2)

这可能是作弊,但我过去曾使用Reflector对我的C#代码进行反编译,然后将其显示为其他.NET语言,只是为了看看它们看起来如何,因为我对C#最熟练。

答案 2 :(得分:0)

您是否尝试过IsNothing功能?

ctx.Load(site, Function(x) x.Lists.Where(Function(l) Not IsNothing(l.Title)))

修改

现在你已经指定Title是一个String,那么你应该使用IsNullOrEmpty函数。

ctx.Load(site, Function(x) x.Lists.Where(Function(l) Not String.IsNullOrEmpty(l.Title)))

答案 3 :(得分:0)

这确实应该有效:

ctx.Load(site, Function(x) x.Lists.Where(Function(l) l.Title.IsNullOrEmpty = False))

如果没有,请告诉我错误信息。