将十六进制值的字符串转换为字节数组

use*_*703 4 c# string bytearray

我有这个:

string x = "0X65 00 0X94 0X81 00 0X40 0X7E 00 0XA0 0XF0 00 0X80 0X2C 00 0XA9 0XA";
Run Code Online (Sandbox Code Playgroud)

我希望如此:

byte[] x = {0X65, 00, 0X94, 0X81, 00, 0X40, 0X7E, 00, 0XA0, 0XF0, 00, 0X80, 0X2C, 00, 0XA9, 0XA};
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的事情:

string[] t = x.split(' ');
byte[] byte = new byte[t.Legnth];
for (int i = 0; i < byte.Length; i++)
            {
                byte[i] = Convert.ToByte(t[i]);
            }
Run Code Online (Sandbox Code Playgroud)

该字节被编码为其他值.我不熟悉字节格式,我只是试图直接从一个由空格分隔的字节串转到将它们放在数组中.

Ulu*_*rov 16

从Microsoft网站:Convert.ToByte方法(String,Int32):

将指定基数中的数字的字符串表示形式转换为等效的8位无符号整数.

在这种情况下,您需要告诉ToByte方法从基数16转换字符串

byte[] t = x.Split().Select(s => Convert.ToByte(s, 16)).ToArray();
Run Code Online (Sandbox Code Playgroud)