BitConverter.ToString Method (array<Byte[], Int32, Int32)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Converts the numeric value of each element of a specified subarray of bytes to its equivalent hexadecimal string representation.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function ToString ( _
    value As Byte(), _
    startIndex As Integer, _
    length As Integer _
) As String
public static string ToString(
    byte[] value,
    int startIndex,
    int length
)

Parameters

  • startIndex
    Type: System.Int32
    The starting position within value.
  • length
    Type: System.Int32
    The number of array elements in value to convert.

Return Value

Type: System.String
A String of hexadecimal pairs separated by hyphens, where each pair represents the corresponding element in a subarray of value; for example, "7F-2C-4A".

Exceptions

Exception Condition
ArgumentNullException

value is nulla null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

startIndex or length is less than zero.

-or-

startIndex is greater than zero and is greater than or equal to the length of value.

ArgumentException

The combination of startIndex and length does not specify a position within value; that is, the startIndex parameter is greater than the length of value minus the length parameter.

Remarks

The length elements from array position startIndex are converted.

If length equals zero, the method returns String.Empty.

Examples

The following code example converts the part of a Byte array starting at the specified startIndex with the specified length to a String using the ToString method.

Module Example
   ' Display a Byte array, using multiple lines if necessary.
   Sub WriteMultiLineByteArray(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal bytes() As Byte, ByVal name As String)

      Const rowSize As Integer = 20
      Const underLine As String = "--------------------------------"
      Dim iter As Integer

      outputBlock.Text &= name & vbCrLf
      outputBlock.Text &= underLine.Substring(0, _
                  Math.Min(name.Length, underLine.Length)) & vbCrLf

      For iter = 0 To bytes.Length - rowSize - 1 Step rowSize
         outputBlock.Text &= BitConverter.ToString(bytes, iter, rowSize)
         outputBlock.Text &= "-" & vbCrLf
      Next iter

      outputBlock.Text &= BitConverter.ToString(bytes, iter) & vbCrLf
      outputBlock.Text &= vbCrLf
   End Sub

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      Dim arrayOne As Byte() = { _
            0, 0, 0, 0, 128, 63, 0, 0, 112, 65, _
            0, 255, 127, 71, 0, 0, 128, 59, 0, 0, _
          128, 47, 73, 70, 131, 5, 75, 6, 158, 63, _
           77, 6, 158, 63, 80, 6, 158, 63, 30, 55, _
          190, 121, 255, 255, 127, 255, 255, 127, 127, 1, _
            0, 0, 0, 192, 255, 0, 0, 128, 255, 0, _
            0, 128, 127}

      Dim arrayTwo As Byte() = { _
          255, 255, 255, 0, 0, 20, 0, 33, 0, 0, _
            0, 1, 0, 0, 0, 100, 167, 179, 182, 224, _
           13, 0, 202, 154, 59, 0, 143, 91, 0, 170, _
          170, 170, 170, 170, 170, 0, 0, 232, 137, 4, _
           35, 199, 138, 255, 232, 244, 255, 252, 205, 255, _
          255, 129}

      Dim arrayThree As Byte() = { _
            0, 222, 0, 0, 0, 224, 111, 64, 0, 0, _
          224, 255, 255, 255, 239, 65, 0, 0, 131, 0, _
            0, 0, 112, 63, 0, 143, 0, 100, 0, 0, _
          240, 61, 223, 136, 30, 28, 254, 116, 170, 1, _
          250, 89, 140, 66, 202, 192, 243, 63, 251, 89, _
          140, 66, 202, 192, 243, 63, 252, 89, 140, 66, _
          202, 192, 243, 63, 82, 211, 187, 188, 232, 126, _
          255, 255, 255, 244, 255, 239, 127, 1, 0, 0, _
            0, 10, 17, 0, 0, 248, 255, 0, 88, 0, _
           91, 0, 0, 240, 255, 0, 0, 240, 157}

      outputBlock.Text &= "This example of the" & vbCrLf & _
          "  BitConverter.ToString( Byte( ), Integer ) and " & _
          vbCrLf & "  BitConverter.ToString( Byte( ), " & _
          "Integer, Integer ) " & vbCrLf & "methods generates " & _
          "the following output." & vbCrLf & vbCrLf

      WriteMultiLineByteArray(outputBlock, arrayOne, "arrayOne")
      WriteMultiLineByteArray(outputBlock, arrayTwo, "arrayTwo")
      WriteMultiLineByteArray(outputBlock, arrayThree, "arrayThree")
   End Sub
End Module

' This example of the
'   BitConverter.ToString( Byte( ), Integer ) and
'   BitConverter.ToString( Byte( ), Integer, Integer )
' methods generates the following output.
' 
' arrayOne
' --------
' 00-00-00-00-80-3F-00-00-70-41-00-FF-7F-47-00-00-80-3B-00-00-
' 80-2F-49-46-83-05-4B-06-9E-3F-4D-06-9E-3F-50-06-9E-3F-1E-37-
' BE-79-FF-FF-7F-FF-FF-7F-7F-01-00-00-00-C0-FF-00-00-80-FF-00-
' 00-80-7F
' 
' arrayTwo
' --------
' FF-FF-FF-00-00-14-00-21-00-00-00-01-00-00-00-64-A7-B3-B6-E0-
' 0D-00-CA-9A-3B-00-8F-5B-00-AA-AA-AA-AA-AA-AA-00-00-E8-89-04-
' 23-C7-8A-FF-E8-F4-FF-FC-CD-FF-FF-81
' 
' arrayThree
' ----------
' 00-DE-00-00-00-E0-6F-40-00-00-E0-FF-FF-FF-EF-41-00-00-83-00-
' 00-00-70-3F-00-8F-00-64-00-00-F0-3D-DF-88-1E-1C-FE-74-AA-01-
' FA-59-8C-42-CA-C0-F3-3F-FB-59-8C-42-CA-C0-F3-3F-FC-59-8C-42-
' CA-C0-F3-3F-52-D3-BB-BC-E8-7E-FF-FF-FF-F4-FF-EF-7F-01-00-00-
' 00-0A-11-00-00-F8-FF-00-58-00-5B-00-00-F0-FF-00-00-F0-9D
// Example of some BitConverter.ToString( ) method overloads.
using System;

class Example
{
   // Display a byte array, using multiple lines if necessary.
   public static void WriteMultiLineByteArray(System.Windows.Controls.TextBlock outputBlock, byte[] bytes,
       string name)
   {
      const int rowSize = 20;
      const string underLine = "--------------------------------";
      int iter;

      outputBlock.Text += name + "\n";
      outputBlock.Text += underLine.Substring(0,
                  Math.Min(name.Length, underLine.Length)) + "\n";

      for (iter = 0; iter < bytes.Length - rowSize; iter += rowSize)
      {
         outputBlock.Text += BitConverter.ToString(bytes, iter, rowSize);
         outputBlock.Text += "-" + "\n";
      }

      outputBlock.Text += BitConverter.ToString(bytes, iter) + "\n";
      outputBlock.Text += "\n";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      byte[] arrayOne = {
              0,   0,   0,   0, 128,  63,   0,   0, 112,  65, 
              0, 255, 127,  71,   0,   0, 128,  59,   0,   0, 
            128,  47,  73,  70, 131,   5,  75,   6, 158,  63, 
             77,   6, 158,  63,  80,   6, 158,  63,  30,  55, 
            190, 121, 255, 255, 127, 255, 255, 127, 127,   1, 
              0,   0,   0, 192, 255,   0,   0, 128, 255,   0, 
              0, 128, 127 };

      byte[] arrayTwo = {
            255, 255, 255,   0,   0,  20,   0,  33,   0,   0, 
              0,   1,   0,   0,   0, 100, 167, 179, 182, 224, 
             13,   0, 202, 154,  59,   0, 143,  91,   0, 170, 
            170, 170, 170, 170, 170,   0,   0, 232, 137,   4, 
             35, 199, 138, 255, 232, 244, 255, 252, 205, 255, 
            255, 129 };

      byte[] arrayThree = {
              0, 222,   0,   0,   0, 224, 111,  64,   0,   0, 
            224, 255, 255, 255, 239,  65,   0,   0, 131,   0, 
              0,   0, 112,  63,   0, 143,   0, 100,   0,   0, 
            240,  61, 223, 136,  30,  28, 254, 116, 170,   1, 
            250,  89, 140,  66, 202, 192, 243,  63, 251,  89, 
            140,  66, 202, 192, 243,  63, 252,  89, 140,  66, 
            202, 192, 243,  63,  82, 211, 187, 188, 232, 126, 
            255, 255, 255, 244, 255, 239, 127,   1,   0,   0, 
              0,  10,  17,   0,   0, 248, 255,   0,  88,   0, 
             91,   0,   0, 240, 255,   0,   0, 240, 157 };

      outputBlock.Text += "This example of the\n" +
          "  BitConverter.ToString( byte[ ], int ) and \n" +
          "  BitConverter.ToString( byte[ ], int, int ) \n" +
          "methods generates the following output.\n\n";

      WriteMultiLineByteArray(outputBlock, arrayOne, "arrayOne");
      WriteMultiLineByteArray(outputBlock, arrayTwo, "arrayTwo");
      WriteMultiLineByteArray(outputBlock, arrayThree, "arrayThree");
   }
}

/*
This example of the
  BitConverter.ToString( byte[ ], int ) and
  BitConverter.ToString( byte[ ], int, int )
methods generates the following output.

arrayOne
--------
00-00-00-00-80-3F-00-00-70-41-00-FF-7F-47-00-00-80-3B-00-00-
80-2F-49-46-83-05-4B-06-9E-3F-4D-06-9E-3F-50-06-9E-3F-1E-37-
BE-79-FF-FF-7F-FF-FF-7F-7F-01-00-00-00-C0-FF-00-00-80-FF-00-
00-80-7F

arrayTwo
--------
FF-FF-FF-00-00-14-00-21-00-00-00-01-00-00-00-64-A7-B3-B6-E0-
0D-00-CA-9A-3B-00-8F-5B-00-AA-AA-AA-AA-AA-AA-00-00-E8-89-04-
23-C7-8A-FF-E8-F4-FF-FC-CD-FF-FF-81

arrayThree
----------
00-DE-00-00-00-E0-6F-40-00-00-E0-FF-FF-FF-EF-41-00-00-83-00-
00-00-70-3F-00-8F-00-64-00-00-F0-3D-DF-88-1E-1C-FE-74-AA-01-
FA-59-8C-42-CA-C0-F3-3F-FB-59-8C-42-CA-C0-F3-3F-FC-59-8C-42-
CA-C0-F3-3F-52-D3-BB-BC-E8-7E-FF-FF-FF-F4-FF-EF-7F-01-00-00-
00-0A-11-00-00-F8-FF-00-58-00-5B-00-00-F0-FF-00-00-F0-9D
*/

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.