Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将逗号分隔的二进制字符串转换为用于注册表插入的字节[]_C#_String_Binary - Fatal编程技术网

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您是对的,谢谢!