使用集合管理多个对象
更新:2007 年 11 月
在本课中,您将学习如何使用集合来管理对象组。
在前面的课程中,您学习了如何使用数组来管理变量组。虽然可以使用数组来管理对象组,但是 Visual Basic 还有一种称为“集合”的特殊类型的对象,可用于存储和检索类似对象组。
与数组类似,Collection 对象中的每一项都有一个索引可用来标识该项。另外,Collection 对象中的每一项都具有“键”,即可用于标识项的 String 值。 使用键的优点是不需要记忆项的索引,而是可以用一个有具体含义的名称来引用它。
创建集合
集合在程序使用同一个类的多个实例时非常有用。例如,找到在前面的课程中创建的 Players 类。您很可能需要多个 Players 对象来表示一个棒球队。
创建集合的第一步是创建 Collection 对象的一个实例,如下面的声明所示。
Dim baseballTeam As New Collection
创建了 Collection 对象后,可以使用 Add 方法向其中添加项,使用 Remove 方法移除项。添加项时,首先指定要添加的项,然后指定用作键的 String 值。
baseballTeam.Add(playerObject, "Player's Name")
移除项时,用键指定要移除的项。
baseballTeam.Remove("Player's Name")
在以下步骤中,您将添加两个新的 Players 对象,然后创建一个 team 集合并将 Position 属性用作键,向该集合中添加 Players 对象。
试一试!
创建对象集合
打开在上一课中创建的 Persons 项目。如果没有保存该项目,请返回上一课 在现有类的基础上生成类:使用继承,然后完成相应的步骤。
在“解决方案资源管理器”中,在“PlayerTest”项目中选择“Form1.vb”节点,然后在“视图”菜单中选择“代码”。
在代码编辑器中,向声明节(在 player2 声明之下)中添加以下内容。
Dim player3 As New Persons.Players Dim player4 As New Persons.Players Dim team As New Collection
将下面的代码添加到 Form1_Load 事件过程中。
With player3 .FirstName = "Eduardo" .LastName = "Saavedra" .Number = 52 .Position = "First Base" End With With player4 .FirstName = "Karl" .LastName = "Jablonski" .Number = 22 .Position = "Pitcher" End With team.Add(player1, player1.Position) team.Add(player2, player2.Position) team.Add(player3, player3.Position) team.Add(player4, player4.Position)
在“解决方案资源管理器”中,在“PlayerTest”项目中选择“Form1.vb”节点。然后在“视图”菜单上,选择“设计器”。
将一个 ComboBox 控件从“工具箱”中拖动到窗体上。
在“属性”窗口中,选择“Items”属性并单击“…”按钮。
在“字符串集合编辑器”中输入以下内容,然后单击“确定”。
Catcher
First Base
Pitcher
Shortstop
双击“ComboBox”控件以打开代码编辑器,然后将下面的代码输入到 ComboBox1_SelectedIndexChanged 事件处理程序中。
Dim SelectedPlayer As Persons.Players SelectedPlayer = team(ComboBox1.SelectedItem) MsgBox("Playing " & ComboBox1.SelectedItem & " is " & _ SelectedPlayer.FullName & "!")
按 F5 运行程序。从下拉列表中选择一个位置,该位置的队员将会显示在消息框中。
后续步骤
在本课中,您学习了如何使用 Collection 对象来管理对象组。现在,您可以在 详细了解:在集合中使用 For Each...Next 循环 中了解有关集合的更多内容,或者继续下一组课程,学习创建自己的控件。
下一课:可视对象:创建您的第一个用户控件
请参见
任务
详细了解:在集合中使用 For Each...Next 循环