C# Tip Article
Convert byte array to hex string
Sometimes we need to convert byte array to a concatenated hex string. Nice thing about it is .NET already has a static class for it. Use BitConverter.ToString().
var bytes = new byte[] { 0x25, 0xA3, 0x5e, 0x75, 0x90, 0xde };
// Convert byte array to a string (concatenation)
string str = BitConverter.ToString(bytes);
// Output: 25-A3-5E-75-90-DE
str = str.Replace("-", "");
// Output: 25A35E7590DE
BitConverter.ToString() concatenates each byte with dash. If no dash is needed, simply replace dash to empty string.
As a side note, we might want to convert byte array to string array. Typically we can use for loop, but probably make it simpler using LINQ.
// Convert byte array to string array
string[] strArray = bytes.Select(p => p.ToString("x2")).ToArray();
// Output:
// strArray[0] = 25
// strArray[1] = a3
// strArray[2] = 5e
// strArray[3] = 75
// strArray[4] = 90
// strArray[5] = de
Each array element has lowercase hex string. But you can use .ToString("X2") to get uppercase hex string.
