У меня есть байтовый массив в качестве входных данных. Я хотел бы преобразовать этот массив в строку, которая содержит шестнадцатеричное представление значений массива. Это код F #:
let ByteToHex bytes =
bytes
|> Array.map (fun (x : byte) -> String.Format("{0:X2}", x))
let ConcatArray stringArray = String.Join(null, (ByteToHex stringArray))
Это дает нужный мне результат, но я бы хотел сделать его более компактным, чтобы у меня была только одна функция.
Я не мог найти функцию, которая бы соответствовала строковому представлению каждого байта в конце
ByteToHex.
Я пробовал Array.concat, concat_map, пробовал со списками, но лучшее, что я мог получить - это массив или список строк.
Вопросы:
- Какой самый простой и элегантный способ сделать это?
- Есть ли в F # конструкция форматирования строки, чтобы я мог заменить String.Format из сборки System?
Пример ввода: [| 0x24uy; 0xA1uy; 0x00uy; 0x1Cuy |] должен выдать строку "24A1001C"