2010-06-30 4 views
0

Tels que:Can list.findall référence une variable?

mylist.FindAll(Function(item) item.property = variable) 

La raison pour laquelle je demande est si j'utilise la syntaxe comme ça, je tends à obtenir une chaîne à whatevever erreur de conversion, ce qui me fait penser à « variable » est traité littéralement comme une chaîne.

Merci.

+0

Je ne sais pas si je vous ai bien compris. VB.Net ne connaît pas les fonctions anonymes et le passage des variables aux délégués n'est pas possible sans quelques astuces (http://www.paulstovell.com/vb-anonymous-methods). Je suis sûr que findAll référence une nouvelle liste (de sameType) qui correspond au findAll Delegate, mais le contenu de la liste sont les mêmes références que dans la "mainlist". –

Répondre

0

Vous pouvez utiliser la fonction anonyme:

Public Class Form1 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim lista As New List(Of My_Class) 
    lista.Add(New My_Class With {.x = 1, .y = 0}) 
    For Each R In lista.FindAll(Function(V) V.x = 1) 
     Debug.Print(R.y) 
    Next 
End Sub 


End Class 
Public Class My_Class 
    Public x, y As Integer  
End Class 
+0

Lorsqu'il est comparé à une valeur constante, Vb génère comme Lambda (Fonction) Lorsqu'il est comparé à une variable locale, Vb génère une Clousure (Classe) – x77

Questions connexes