2010-03-27 10 views
10

El BitConverter.ToString da un hexadecimal con el formato 'XX-XX-XX-XX'Método opuesto a BitConverter.ToString?

¿Hay un método opuesto a esta para que pueda obtener la matriz de bytes original a partir de una cadena como se da en este formato?

Respuesta

13

No, pero es fácil de implementar:

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

Uso de string.Split, then byte.Parse en un bucle es la forma más sencilla. Puede exprimir un poco más de rendimiento si sabe que cada byte está rellenado con dos dígitos hexadecimales, siempre hay exactamente un guión entre ellos, omitiendo la cadena. Separar y simplemente avanzar tres caracteres a la vez.