Vb.net list.findall能否引用变量?
例如:Vb.net list.findall能否引用变量?,vb.net,list,function,variables,findall,Vb.net,List,Function,Variables,Findall,例如: mylist.FindAll(Function(item) item.property = variable) 我问这个问题的原因是,如果我使用这样的语法,我倾向于得到一个字符串到whatevever的转换错误,这使我认为变量被视为一个字符串 谢谢。您可以使用匿名功能: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle
mylist.FindAll(Function(item) item.property = variable)
我问这个问题的原因是,如果我使用这样的语法,我倾向于得到一个字符串到whatevever的转换错误,这使我认为变量被视为一个字符串
谢谢。您可以使用匿名功能:
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
我不确定我是否理解正确。VB.Net不知道匿名函数,如果没有一些技巧,将变量传递给代理是不可能的。我确信findAll引用了一个新的与findAll委托匹配的SametyPe列表,但是列表的内容与mainlist中的引用相同。当与常量值比较时,Vb生成为Lambda函数当与局部变量比较时,Vb生成Clousure类