2010-03-09 11 views
5

VB.NET tương đương với mã C# này?VB.NET tương đương với mã C# này là gì?

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

Tôi đã thử

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

nhưng lỗi này với "The expression (Convert(l.Title) != null) is not supported."

Suy nghĩ

+0

gọi là Title một chuỗi? – garik

+0

Tiêu đề là một Thuộc tính xảy ra là một loại Chuỗi – Bob

Trả lời

2

nếu Tiêu đề là chuỗi thử sử dụng IsNullOrEmpty();

hoặc

Nullable (Of T) .HasValue nếu Tiêu đề là Nullable

hoặc

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

Tôi đã thử các loại này và 1) không được nullable một Chuỗi của nó. 2) dường như không thể so sánh chuỗi trong tuyên bố lambda ... – Bob

+0

xem mẫu của tôi, xin vui lòng. nó hoạt động – garik

0

Bạn đã thử các IsNothing chức năng?

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

EDIT:

Bây giờ bạn đã xác định rằng Tiêu đề là một String, sau đó bạn nên sử dụng chức năng IsNullOrEmpty.

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

khi tôi thử điều này trong biểu thức Lambda tôi nhận được một lỗi nói rằng thành viên IsNnothing không thể được sử dụng trong biểu thức ... – Bob

0

Đây thực sự nên làm việc:

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

Nếu nó không, cho tôi biết các thông báo lỗi.

2

này có thể được gian lận, nhưng tôi đã sử dụng Reflector trong quá khứ để dịch ngược mã C# của tôi và sau đó hiển thị nó như là ngôn ngữ .NET khác chỉ để xem cách họ sẽ trông như tôi thông thạo nhất trong C#