C# 将逗号分隔的二进制字符串转换为用于注册表插入的字节[]
这真的让我受不了了。我需要将其转换为:C# 将逗号分隔的二进制字符串转换为用于注册表插入的字节[],c#,string,binary,C#,String,Binary,这真的让我受不了了。我需要将其转换为: 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(',')将其拆分为一个数组并使用它,但我无法理解它。您可以使用Linq string data = "4,0,0,0,1,0,
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(',')
将其拆分为一个数组并使用它,但我无法理解它。您可以使用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();
var buf=Regex.Matches(数据@“\d+”).Cast()
.Select(x=>byte.Parse(x.Value))
.ToArray();
我假设您的字节数组需要解析的值(例如4、0、1、100等),而不是每个字符串的ASCII值
首先转换为字符串数组:
string[] strings = data.Split(',');
然后将每个字符串转换为一个字节:
byte[] bytes = strings.Select(s => byte.Parse(s)).ToArray();
您的意思是第一个字节是4,第二个字节是0,等等?我想您可以使用LINQ:
data.Split(',').Cast().ToArray()来实现这一点代码>@Logerfo铸造不起作用。您必须解析这些值,因此您需要的不是.Cast()
,而是。选择(byte.parse)
@juharr您是对的,谢谢!