C#中十六进制字符串到字节数组的转换
在C#中,将十六进制字符串转换为字节数组可以使用LINQ(语言集成查询)和字符串操作的组合来实现。
以下是一个示例代码:
<code class="language-csharp">public static byte[] HexStringToByteArray(string hex) { return Enumerable.Range(0, hex.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) .ToArray(); }</code>
此方法接受一个十六进制字符串作为输入,并执行以下步骤:
Enumerable.Range(0, hex.Length)
生成字符串中字符的索引序列。Where(x => x % 2 == 0)
筛选序列,仅包含偶数索引的字符,确保字节成对分组。hex.Substring(x, 2)
选择每个字符对作为子字符串,并使用Convert.ToByte(hex.Substring(x, 2), 16)
将其转换为字节。参数16指定从十六进制数基进行转换。.ToArray()
将生成的字节序列转换为数组,从而产生所需的字节数组。这种方法利用了LINQ的强大功能,并演示了一种在C#中有效解析和将十六进制字符串转换为字节数组的方法。
以上是如何在C#中有效地将十六进制字符串转换为字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!