VB.Net List.Find.将值传递给谓词
发布时间:2020-12-17 00:28:27 所属栏目:大数据 来源:网络整理
导读:使用List.Find与自定义谓词有点麻烦 我有一个这样做的功能 private function test () Dim test As Integer = keys.Find(AddressOf FindByOldKeyAndName).NewKey 这里是谓词的功能 Private Shared Function FindByOldKeyAndName(ByVal k As KeyObj) As Boolea
使用List.Find与自定义谓词有点麻烦
我有一个这样做的功能 private function test () Dim test As Integer = keys.Find(AddressOf FindByOldKeyAndName).NewKey 这里是谓词的功能 Private Shared Function FindByOldKeyAndName(ByVal k As KeyObj) As Boolean If k.OldKey = currentKey.OldKey And k.KeyName = currentKey.KeyName Then Return True Else Return False End If End Function 通过这样做,这意味着我必须在类中有一个共享的“currentKey”对象,我知道必须有一种方式传递我对CurrentKey感兴趣的值(即keyname和oldkey) 理想情况下,我想把它称为 但是当我这样做我会得到编译错误. 我如何称这种方法并传递值?
您可以使用VS2008及以上版本的lambda表达式清理该问题.一个愚蠢的例子:
Sub Main() Dim lst As New List(Of Integer) lst.Add(1) lst.Add(2) Dim toFind = 2 Dim found = lst.Find(Function(value As Integer) value = toFind) Console.WriteLine(found) Console.ReadLine() End Sub 对于早期版本,您必须使“currentKey”成为您类的私有字段.检查我的代码在this thread为一个更清洁的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Groovy探索之MOP 三 Class、MetaClass和ExpandoMetaClass
- cocos2d-x 3.0rc0 lua练习最基础例子
- 强大的Perl正则表达式实例详解
- 【笨木头Lua专栏】基础补充02:函数的几个特别之处
- [VB.NET]请问,在Button_Click里,弹出新窗口的代码怎么样写
- delphi – 为什么CreateFileMapping返回“文件已经存在”?
- Leetcode ——Lowest Common Ancestor of a Binary Tree
- (二十)golang--变量的作用域
- lua(二)如何同C互相通信
- 在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理