C# – How to convert a hex string to a byte array?

c++encodinghex

Can we convert a hex string to a byte array using a built-in function in C# or do I have to make a custom method for this?

Best Solution

Here's a nice fun LINQ example.

public static byte[] StringToByteArray(string hex) {
    return Enumerable.Range(0, hex.Length)
                     .Where(x => x % 2 == 0)
                     .Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
                     .ToArray();
}