当前位置:  开发笔记 > 编程语言 > 正文

正确使用List.Exists和Predicates

如何解决《正确使用List.Exists和Predicates》经验,为你挑选了1个好方法。

所有

我目前正在尝试实现一些类似的东西

dim l_stuff as List(of Stuff)

dim m_stuff as new Stuff

m_stuff.property1 = 1
m_stuff.property2 = "This"

if not l_stuff.exists(m_stuff) then
     l_stuff.add(m_stuff)
end if

当Exist方法正在寻找Stuff的谓词时,这显然会失败.

任何人都可以完全解释谓词以及我如何实现我在这里尝试做的事情.

我试过用

if not l_stuff.contains(m_stuff) then
   l_stuff.add(m_stuff)
end if 

但是,这不会检测到idenitcal条目并在列表中输入副本

谢谢



1> Barry Kelly..:

List(Of T).Contains是你应该使用的方法.正如你所说,存在期望一个谓词.当然,对于.Contains按预期工作,您需要覆盖该Equals()方法,以及GetHashCode().

List(Of T).Exists期望一个函数在传递T类型的项时返回一个布尔值,其中T(在您的情况下)是Stuff类型.所以,你可以写一个看起来像这样的方法:

If Not l_stuff.Exists(Function(x) x.property1 = m_stuff.property1 And _
x.property2 = m_stuff.property2) Then

等等.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有