Craig Schwarze
Craig Schwarze

Reputation: 11615

In C#, how do I convert an array of bytes into a string of hex numbers?

In C#, what is the tidiest way to convert an array of bytes into a string of hex numbers?

Upvotes: 2

Views: 2597

Answers (3)

Vinko Vrsalovic
Vinko Vrsalovic

Reputation: 340191

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();
 }

Upvotes: 2

spender
spender

Reputation: 120400

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.

Upvotes: 1

Eric Mickelsen
Eric Mickelsen

Reputation: 10377

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.

Upvotes: 2

Related Questions