【问题标题】:Can list.findall reference a variable?list.findall 可以引用变量吗?
【发布时间】:2010-06-30 14:15:20
【问题描述】:

如:

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

我问的原因是如果我使用这样的语法,我倾向于得到一个字符串到任何转换错误,这让我认为“变量”被逐字视为一个字符串。

谢谢。

【问题讨论】:

  • 我不确定我是否理解正确。 VB.Net 不知道匿名函数,如果没有一些技巧(paulstovell.com/vb-anonymous-methods),将变量传递给委托是不可能的。我确定 findAll 引用了一个与 findAll 代表匹配的新列表(相同类型),但列表的内容与“主列表”中的引用相同。

标签: vb.net list function variables findall


【解决方案1】:

你可以使用匿名函数:

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 生成 Lambda(函数) 当与局部变量比较时,Vb 生成 Clousure(类)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
相关资源
最近更新 更多