Противоположный метод для BitConverter.ToString?

BitConverter.ToString дает шестнадцатеричный формат в формате "XX-XX-XX-XX"

Есть ли противоположный метод для этого, чтобы я мог получить исходный массив байтов из строки, указанной в этом формате?

Ответ 1

Нет, но его легко реализовать:

string s = "66-6F-6F-62-61-72";
byte[] bytes = s.Split('-')
    .Select(x => byte.Parse(x, NumberStyles.HexNumber))
    .ToArray();

Ответ 2

Использование string.Split, then byte.Parse в цикле - самый простой способ. Вы можете выжать немного больше производительности, если знаете, что каждый байт дополняется двумя шестнадцатеричными цифрами, между ними всегда ровно одна тире, пропуская строку. Разбиение и просто переход по трем символам за раз.