Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net list.findall能否引用变量?_Vb.net_List_Function_Variables_Findall - Fatal编程技术网

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类