将逗号分隔的二进制字符串转换为字节[]以插入注册表

本文关键字:字节 注册表 插入 转换 分隔 字符串 二进制 | 更新日期: 2024-10-22 13:45:33

这真的比我好。我需要转换这个:

string data = "4,0,0,0,1,0,0,0,16,0,0,0,100,58,82,80,162,77,200,183,178,32"

转换成一个字节数组,这样我就可以在这里使用它:

polKey.SetValue("Blob", data, RegistryValueKind.Binary);

我已经尝试过data.Split(',')将其拆分为一个数组并使用它,但我无法理解它。

将逗号分隔的二进制字符串转换为字节[]以插入注册表

我假设您的字节数组需要解析的值(例如4、0、1、100等),而不是每个字符串的ASCII值。

首先转换为字符串数组:

string[] strings = data.Split(',');

然后将每个字符串转换为一个字节:

byte[] bytes = strings.Select(s => byte.Parse(s)).ToArray();

您可以使用Linq

string data = "4,0,0,0,1,0,0,0,16,0,0,0,100,58,82,80,162,77,200,183,178,32";
var buf = data.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
              .Select(x => byte.Parse(x))
              .ToArray();

正则表达式解决方案也是可能的

var buf = Regex.Matches(data,@"'d+").Cast<Match>()
               .Select(x => byte.Parse(x.Value))
               .ToArray();