In C#, what is the tidiest way to convert an array of bytes into a string of hex numbers?
+2
A:
BitConverter.ToString http://msdn.microsoft.com/en-us/library/system.bitconverter.tostring.aspx
You'll get hyphens between bytes in the string, but they are easily removed.
Eric Mickelsen
2010-01-28 02:57:58
That is beautiful...
CraigS
2010-01-28 03:00:28
+1
A:
This should work... BitConverter is better, but this gives you more control (no hyphens) and you can get fancy with lambdas if you so wished :)
public string byteToHex(byte[] byteArray) {
StringBuilder result = new StringBuilder();
foreach (byte b in byteArray) {
result.AppendString(b.ToString("X2"));
}
return result.ToString();
}
Vinko Vrsalovic
2010-01-28 02:58:34
+1
A:
Here's an extension I use when I need lowercase hex. e.g. Facebook requires lowercase for signing POST data.
private static string ToLowerCaseHexString(this IEnumerable<byte> hash)
{
return hash
.Select(b => String.Format("{0:x2}",
b))
.Aggregate((a, b) => a + b);
}
Might be quicker using a StringBuilder over linq .Aggregate, but the byte arrays I pass are short.
spender
2010-01-28 03:05:43