用C#将一个16进制的字符串转成字节数组
时间: 2023-07-01 19:22:12 浏览: 116
C# 16进制与字符串、字节数组之间的转换
你可以使用`System.Convert`类的`ToByte`方法来将16进制字符串转换成字节数组。以下是一个示例代码:
```csharp
string hexString = "FFAABBCCDDEEFF";
byte[] byteArray = Enumerable.Range(0, hexString.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hexString.Substring(x, 2), 16))
.ToArray();
```
首先,我们定义了一个16进制字符串`hexString`,它由8个16进制数字组成。然后,我们使用`Enumerable.Range`方法来生成一个包含0到字符串长度减1的整数序列。接着,我们使用`Where`方法来过滤出序列中所有偶数位置的元素。然后,我们使用`Select`方法来将每个偶数位置的元素转换成对应的字节。最后,我们使用`ToArray`方法将所有字节组成的序列转换成字节数组。
在上面的代码中,我们使用了`Substring`方法从原始字符串中提取每个字节的16进制表示。`Substring`方法的第一个参数指定了起始位置,第二个参数指定了要提取的子字符串的长度。我们将这个子字符串作为参数传递给`Convert.ToByte`方法,该方法将其转换为一个字节。最后,我们将所有字节组成的序列转换为一个字节数组。
阅读全文