Public Sub RedimPreserve(ObjArray As Object, NewSize As Int) As Object
Dim Result As Object
If IsArray(ObjArray) Then
Select ArrayType(ObjArray)
Case "String"
Dim StringSource() As String = ObjArray
Dim StringNew(NewSize) As String
For i = 0 To Min(NewSize, StringSource.Length) - 1
StringNew(i) = StringSource(i)
Next
Result = StringNew
Case "Int"
Dim IntSource() As Int = ObjArray
Dim IntNew(NewSize) As Int
For i = 0 To Min(NewSize, IntSource.Length) - 1
IntNew(i) = IntSource(i)
Next
Result = IntNew
Case "Long"
Dim LongSource() As Long = ObjArray
Dim LongNew(NewSize) As Long
For i = 0 To Min(NewSize, LongSource.Length) - 1
LongNew(i) = LongSource(i)
Next
Result = LongNew
Case "Byte"
Dim ByteSource() As Byte = ObjArray
Dim ByteNew(NewSize) As Byte
For i = 0 To Min(NewSize, ByteSource.Length) - 1
ByteNew(i) = ByteSource(i)
Next
Result = ByteNew
Case "Short"
Dim ShortSource() As Short = ObjArray
Dim ShortNew(NewSize) As Short
For i = 0 To Min(NewSize, ShortSource.Length) - 1
ShortNew(i) = ShortSource(i)
Next
Result = ShortNew
Case "Float"
Dim FloatSource() As Float = ObjArray
Dim FloatNew(NewSize) As Float
For i = 0 To Min(NewSize, FloatSource.Length) - 1
FloatNew(i) = FloatSource(i)
Next
Result = FloatNew
Case "Double"
Dim DoubleSource() As Double = ObjArray
Dim DoubleNew(NewSize) As Double
For i = 0 To Min(NewSize, DoubleSource.Length) - 1
DoubleNew(i) = DoubleSource(i)
Next
Result = DoubleNew
Case "Byte"
Dim ByteSource() As Byte = ObjArray
Dim ByteNew(NewSize) As Byte
For i = 0 To Min(NewSize, ByteSource.Length) - 1
ByteNew(i) = ByteSource(i)
Next
Result = ByteNew
Case "String"
Dim StringSource() As String = ObjArray
Dim StringNew(NewSize) As String
For i = 0 To Min(NewSize, StringSource.Length) - 1
StringNew(i) = StringSource(i)
Next
Result = StringNew
Case "Char"
Dim CharSource() As Char = ObjArray
Dim CharNew(NewSize) As Char
For i = 0 To Min(NewSize, CharSource.Length) - 1
CharNew(i) = CharSource(i)
Next
Result = CharNew
Case "Object"
Dim ObjectSource() As Object = ObjArray
Dim ObjectNew(NewSize) As Object
For i = 0 To Min(NewSize, ObjectSource.Length) - 1
ObjectNew(i) = ObjectSource(i)
Next
Result = ObjectNew
End Select
End If
Return Result
End Sub