Что такое эквивалент VB.NET для этого кода на С#?
VB.NET эквивалентен этому С# -коду?
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."
Мысли
Ответы
Ответ 1
если Title string используется для использования IsNullOrEmpty();
или
Nullable (Of T).HasValue, если 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
Ответ 2
Это может быть обман, но я использовал Reflector в прошлом, чтобы декомпилировать мой код на С#, а затем отобразить его как другие языки .NET, чтобы посмотреть, как они выглядят так, как я больше всего понимаю С#
Ответ 3
Вы пробовали функцию IsNothing?
ctx.Load(site, Function(x) x.Lists.Where(Function(l) Not IsNothing(l.Title)))
EDIT:
Теперь, когда вы указали, что Title является строкой, вы должны использовать функцию IsNullOrEmpty.
ctx.Load(site, Function(x) x.Lists.Where(Function(l) Not String.IsNullOrEmpty(l.Title)))
Ответ 4
Это действительно должно работать:
ctx.Load(site, Function(x) x.Lists.Where(Function(l) l.Title.IsNullOrEmpty = False))
Если это не так, дайте мне знать сообщение об ошибке.