gpt4 book ai didi

vb.net - 在通用列表中搜索对象

转载 作者:行者123 更新时间:2023-12-03 00:56:37 28 4
gpt4 key购买 nike

是否可以通过通用列表中的某个属性来搜索对象?

Public Class Customer

Private _id As Integer

Private _name As String

Public Property ID() As Integer
Get
Return _id
End Get
Set
_id = value
End Set
End Property

Public Property Name() As String
Get
Return _name
End Get
Set
_name = value
End Set
End Property

Public Sub New(id As Integer, name As String)
_id = id
_name = name
End Sub

End Class

然后加载并搜索

Dim list as new list(Of Customer)

list.Add(New Customer(1,"A")

list.Add(New Customer(2,"B")

如何返回 id =1 的客户对象?这与泛型中的“谓词”有关吗?

注意:我在 VB.NET 中执行此操作。

最佳答案

是的,这与谓词有关:)

您想要 Find(Of T)方法。您需要传入一个谓词(在本例中是一种委托(delegate)类型)。如何构造该委托(delegate)取决于您使用的 VB 版本。如果您使用 VB9,则可以使用 lambda 表达式。 (请注意,如果您使用的是 VB9,您可能首先需要使用 LINQ 而不是 Find(Of T)。)lambda 表达式的形式类似于:

list.Find(function(c) c.ID = 1)

我不确定 VB8 是否像 C# 2 一样支持匿名方法。如果您需要从 VB8 调用它,我会看看我能想出什么。 (我确实更喜欢 C# :)

关于vb.net - 在通用列表中搜索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200151/

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