如何:创建具有混合元素类型的数组
更新:2007 年 11 月
数组只声明一个数据类型,而数组的所有元素都必须是该数据类型。这一限制通常是合理的,这是因为所有元素相互之间都紧密相关,并具有相似类型的值。但是,有时候元素不是紧密相关的,或者不具有相似的值。在这种情况下,可将数组元素声明为 Object 数据类型,单个元素可指向不同类型的数据,如数字、字符、字符串、对象或其他数组。
创建具有不同数据类型的元素的数组
将数组声明为 Object。下面的示例声明一个变量来保存 Object 元素组成的数组,然后创建数组,并将其分配给该变量。
Dim mixedTypes As Object() = New Object() {}
请记住,使用 Object 数据类型的性能不如使用更具体的数据类型高效。这是因为运行库必须使用称为“装箱”和“取消装箱”的操作在其自然数据类型和 Object 之间转换数据。如果经常进行此附加处理,则可能影响性能。
访问数组中不同数据类型的元素
以常规方式读写元素。在 Object 数组中可以存储和检索任何数据类型的元素。
下面的示例演示将不同数据类型的信息放入 Object 数组。它将雇员信息存储在 employeeData 变量中的数组中。
Dim employeeData(3) As Object employeeData(0) = "Alex Hankin" employeeData(1) = "4242 Maple Street" employeeData(2) = 48 employeeData(3) = #8/23/1956#
要从 Object 数组中检索不同数据类型的信息,可将元素转换为适当的数据类型,如下例所示。
Dim age As Integer = CInt(employeeData(2)) Dim birthDate as Date = CDate(employeeData(3))
在元素相互之间不相似或不相关的情况下,另一个办法是将这些元素放在集合中,而不使用 Object 数组。有关更多信息,请参见 使用集合替代数组。