VBA – 查询自定义类的集合

在VBA中有一种方法来查询名为People的自定义类的集合。 比方说,我有一个自定义类具有名字,姓氏和标题。

'private attributes Private pFirstName as String Private pLastName as String Private pTitle as String 'Get/Let Methods Public Property Get FirstName() as String FirstName = pFirstName End Property Public Property Let FirstName (Value as String) pFirstName = Value End Property Public Property Get LastName() as String LastName = pLastName End Property Public Property Let LastName(Value as String) pLastName = Value End Property Public Property Get Title() as String Title = pTitle End Property Public Property Title Let (Value as String) pTitle = Value End Property 

然后,在我的主要SUB中,创build一个人的集合。 有没有办法查询该集合,也就是说,返回所有具有名字==杰克的人。

谢谢

你可以用你的方式来实现这样的事情,所以你可以做的疯狂的东西,如:

 Dim items As LinqEnumerable Set items = LinqEnumerable.FromCollection(myCollection) _ .Where("x => x.FirstName = ""Jack""") Dim p As Person '"People" is plural, you don't want a pluralized class name here. For Each p In items Debug.Print p.FirstName Next 

但是这是非常非常多的,而且效率低下。 所有你需要的是一个循环,一个条件:

 For Each p In myCollection If p.FirstName = "Jack" Then 'we have a winner End If Next