2010-03-27 3 views
10

Die BitConverter.ToString gibt ein hexadezimalen im Format ‚XX-XX-XX-XX‘Gegenüberliegende Methode zu BitConverter.ToString?

Gibt es eine entgegengesetzte Methode, um dies so, dass ich den ursprünglichen Byte-Array aus einem String in diesem Format als gegeben erhalten kann?

Antwort

13

Nein, aber seine leicht zu implementieren:

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

Verwendung von string.Split, dann byte.Parse in einer Schleife ist der einfachste Weg. Sie können etwas mehr Leistung herausquetschen, wenn Sie wissen, dass jedes Byte auf zwei Hexadezimalziffern aufgefüllt ist, es gibt immer genau einen Strich dazwischen, indem Sie den String überspringen. Teilen und nur drei Zeichen gleichzeitig durchlaufen.