Что VB.NET эквивалентно этому коду C#?

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 ответа

Это может быть обманом, но я использовал Reflector в прошлом, чтобы декомпилировать мой код C#, а затем отображать его как другие языки.NET, просто чтобы посмотреть, как они будут выглядеть, поскольку я наиболее свободно владею C#

Если Title - строка, попробуйте использовать IsNullOrEmpty();

или же

Nullable(Of T). Имеет значение, если заголовок имеет значение 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

Вы пробовали функцию 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)))

Это действительно должно работать:

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

Если это не так, дайте мне знать сообщение об ошибке.

Другие вопросы по тегам