2010-03-27 29 views
10

BitConverter.ToString cung cấp một hệ thập lục phân theo định dạng 'XX-XX-XX-XX'Phương pháp đối diện với BitConverter.ToString?

Có phương pháp ngược lại để tôi có thể lấy mảng byte ban đầu từ một chuỗi như được đưa ra trong định dạng này không?

Trả lời

13

Không, nhưng dễ thực hiện:

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

Sử dụng chuỗi.Split, rồi byte.Parse trong vòng lặp là cách đơn giản nhất. Bạn có thể vắt thêm một chút hiệu suất nếu bạn biết rằng mỗi byte được đệm thành hai chữ số thập phân, luôn có chính xác một dấu gạch ngang ở giữa, bằng cách bỏ qua chuỗi.Split và chỉ đi qua ba ký tự cùng một lúc.

Các vấn đề liên quan