Что 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))
Если это не так, дайте мне знать сообщение об ошибке.