2010-03-09 5 views
5

VB.NET entspricht diesem C# -Code?Was ist die VB.NET-Entsprechung zu diesem C# -Code?

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

Ich habe versucht

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

aber diese Fehler mit "The expression (Convert(l.Title) != null) is not supported."

Gedanken

+0

ist Titel ein Faden? – garik

+0

Titel ist eine Eigenschaft, die zufällig ein String-Typ ist – Bob

Antwort

2

wenn Titel ist Zeichenfolge versuchen IsNullOrEmpty verwenden();

oder

Nullable (Of T) .HasValue wenn Titel ist Nullable

oder

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 
+0

Ich habe versucht, diese und 1) Typ ist nicht Nullable es ist ein String. 2) kann nicht scheinen, um Vergleiche in der Lambda-Anweisung zu tun ... – Bob

+0

siehe meine Probe, bitte. es funktioniert – garik

0

Haben Sie versucht, die IsNothing Funktion?

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

EDIT:

Nun, da Sie angegeben haben, dass Titel ein String ist, dann sollten Sie die IsNullOrEmpty-Funktion verwenden.

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

wenn ich dies in der Lambda-Ausdruck versuche, erhalte ich einen Fehler, der besagt, dass das IsNnothing-Mitglied nicht im Ausdruck verwendet werden kann ... – Bob

0

sollte diese wirklich funktionieren:

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

Wenn es mir die Fehlermeldung nicht kennt, lassen.

2

Diese betrügen kann, aber ich habe Reflektor in der Vergangenheit verwendet, um meine C# -Code zu dekompilieren und es dann als anderen .NET-Sprachen angezeigt zu sehen, wie sie, wie ich die meisten fließend in C# bin aussehen würde