创建新的参数类型数组

时间:2011-01-04 19:42:26

标签: .net vb.net

我正在尝试创建一个函数来解析多维Array中的所有值,除了给定一个维度之外的所有值。细节不相关,但对于此功能,我需要返回包含原始多维Array所具有的相同类型值的一维Array

要将任何维度Array传递给我的函数,我将此参数的类型声明为Array。但是,如何创建该特定类型的新Array(例如Integer)?

目前我有以下代码:

Function GetRow(ByVal arr As Array) As Array
    Dim result As (...) 'This should be Integer() if arr contains Integers, etc.
    Return result
End Function

如何声明result的类型,使其具有与arr相同类型的值? New Array是不可能的,因为它被声明为MustInherit

1 个答案:

答案 0 :(得分:4)

在此处使用泛型,以便该函数可以处理任何类型:

Function GetRow(Of T)(ByVal arr() As T) As T()
    Dim result() As T
    ReDim result(arr.Length - 1)
    Array.Copy(arr, result, arr.Length)
    Return result
End Function

样本用法:

    Dim iarr() As Integer = {1, 2, 3, 4}
    Dim copy = GetRow(iarr)