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."
思想
答案 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))
如果没有,请告诉我错误信息。