VB.NET 一些陣列轉換

摘要:VB.NET 一些陣列轉換

' xxxArray To ByteArray  
    '===========================================  
    ''' <summary>String 轉為 Byte Array</summary>  
    Public Function ConvertStringToByteArray(ByVal str As String) As Byte()  
        Dim encoding As New System.Text.ASCIIEncoding()  
        Return encoding.GetBytes(str)  
    End Function  
  
    Public Function ConvertDoubleArrayToByteArray(ByVal dArray() As Double) As Byte()  
        Dim lenDoubleArray As Integer = Marshal.SizeOf(GetType(Double)) * dArray.Length  
        Dim ByteArray(lenDoubleArray - 1) As Byte  
        Marshal.Copy(dArray, 0, Marshal.UnsafeAddrOfPinnedArrayElement(ByteArray, 0), dArray.Length)  
        Return ByteArray  
    End Function  
  
    Public Function ConvertIntArrayToByteArray(ByVal iArray() As Integer) As Byte()  
        Dim lenIntegerArray As Integer = Marshal.SizeOf(GetType(Int32)) * iArray.Length  
        Dim ByteArray(lenIntegerArray - 1) As Byte  
        Marshal.Copy(iArray, 0, Marshal.UnsafeAddrOfPinnedArrayElement(ByteArray, 0), iArray.Length)  
        Return ByteArray  
    End Function  
  
    ' ByteArray To xxxArray  
    '===========================================  
    ''' <summary>Byte Array 轉為 String</summary>  
    Public Function ConvertByteArrayToString(ByVal byteArray() As Byte) As String  
        Dim encoding As New System.Text.ASCIIEncoding()  
        Return encoding.GetString(byteArray)  
    End Function  
  
    Public Function ConvertByteArrayToDoubleArray(ByVal bArray() As Byte) As Double()  
        Dim dArray(bArray.Length / Marshal.SizeOf(GetType(Double)) - 1) As Double  
        Marshal.Copy(bArray, 0, Marshal.UnsafeAddrOfPinnedArrayElement(dArray, 0), bArray.Length)  
        Return dArray  
    End Function  
  
    Public Function ConvertByteArrayToIntegerArray(ByVal bArray() As Byte) As Integer()  
        Dim iArray(bArray.Length / Marshal.SizeOf(GetType(Int32)) - 1) As Int32  
        Marshal.Copy(bArray, 0, Marshal.UnsafeAddrOfPinnedArrayElement(iArray, 0), bArray.Length)  
        Return iArray  
    End Function  
  
    ' String Array To Double Array  
    '============================================  
    ''' <summary>將 String Array 轉為 Double Array</summary>  
    Public Function ConvertStringArrayToDoubleArray(ByVal inVal() As String) As Double()  
        Return System.Array.ConvertAll(Of String, Double)(inVal, AddressOf DelegateStringArrayToDoubleArray)  
    End Function  
  
    ''' <summary>將 String Array 轉為 Single Array</summary>  
    Private Function DelegateStringArrayToDoubleArray(ByVal inVal As String) As Double  
        Try  
            If String.IsNullOrEmpty(inVal) OrElse inVal = "*" Then  
                Return 0  
            End If  
            Return CSng(inVal)  
        Catch ex As System.Exception  
            Throw ex  
        End Try  
    End Function  
  
    ' String Array To Integer Array  
    '==============================================  
    ''' <summary>將 String Array 轉為 Integer Array</summary>  
    Public Function ConvertStringArrayToIntArray(ByVal inVal() As String) As Integer()  
        Return System.Array.ConvertAll(Of String, Integer)(inVal, AddressOf DelegateStringArrayToIntArray)  
    End Function  
  
    ''' <summary>將 String Array 轉為 Integer Array</summary>  
    Private Function DelegateStringArrayToIntArray(ByVal inVal As String) As Integer  
        Try  
            If IsNumeric(inVal) = False OrElse inVal = "*" Then  
                Return 0  
            End If  
            Return CInt(inVal)  
        Catch ex As System.Exception  
            Throw ex  
        End Try  
    End Function  
  
    ' Image To Or From Byte Array  
    '==============================================  
    ''' <summary>將 Image 轉為 Byte Array</summary>  
    Public Function ConvertImageToByteArray(ByVal imageIn As Drawing.Image) As Byte()  
        Dim ms As MemoryStream = New MemoryStream  
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)  
        Return ms.ToArray  
    End Function  
  
    ''' <summary>將 Byte Array 轉為 Image</summary>  
    Public Function ConvertByteArrayToImage(ByVal byteArray() As Byte) As Drawing.Image  
        Dim ms As MemoryStream = New MemoryStream(byteArray)  
        Dim returnImage As Drawing.Image = Drawing.Image.FromStream(ms)  
        Return returnImage  
    End Function