2012-03-01 5 views
8

Sto provando alcune espressioni LINQ e non riesco a farle funzionare con la classe List. Fondamentalmente voglio essere in grado di ordinare un elenco di oggetti personalizzati per tipo di proprietà, ma la sintassi # LINQ C mi sta uccidendo e non riesco a capire come convertirlo in VBOrdinamento di un elenco di <Object> con VB e LINQ

Class Foo 
    Sub New(Name As String, Position As Integer) 
     Me.Name = Name 
     Me.Position = Position 
    End Sub 
    Public Name As String 
    Public Position As Integer 
End Class 

Sub Main() 
    Dim l As New List(Of Foo) 
    l.Add(New Foo("C", 3)) 
    l.Add(New Foo("B", 2)) 
    l.Add(New Foo("A", 1)) 

    Dim asc = ..... (sort l by position asecnding) 
    Dim desc = ..... (sort l by position descending) 

End Sub 

risposta

12
Dim asc = From f In l Order By f.Position 
Dim desc = From f In l Order By f.Position Descending 
+0

non è necessario il "selezionare F" alla fine in VB. –

+0

Oh sì! Grazie Jason – harriyott

7

ho usato C# a VB convertitore ..

Dim sortedasc = l.OrderBy(Function(k) k.Position) 
Dim sorteddesc = l.OrderByDescending(Function(k) k.Position) 

questo dovrebbe funzionare ..

Problemi correlati