gpt4 book ai didi

vb.net - 正确使用 List.Exists 和 Predicates

转载 作者:行者123 更新时间:2023-12-04 01:36:02 24 4
gpt4 key购买 nike

全部

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

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

但是这不会检测到相同的条目并在列表中输入重复项

谢谢

最佳答案

List(Of T).Contains是您应该使用的方法。正如您所说,Exists 需要一个谓词。当然,要使 .Contains 按预期工作,您需要覆盖 Equals()方法,以及 GetHashCode() .
List(Of T).Exists期望一个函数在传递 T 类型的项目时返回一个 bool 值,其中 T 在您的情况下是 Stuff 类型。因此,您可以编写一个如下所示的方法:

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

等等。

关于vb.net - 正确使用 List.Exists 和 Predicates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/325965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com