从 Ints 的字符串动态设置 byte[] 数组

Dynamicaly set byte[] array from a String of Ints

我通常这样设置我的 byte[] 数组:

byte[] byteArr = { 123, 234, 123, 234, 123, 123, 234 };

现在,我的问题, 我正在获取必须作为字符串存储到数组中的数据。

示例:

string datas = "123, 234, 123, 234, 123, 123, 234";

我想做这样的事情:

byte[] byteArr = { datas };

运气不好...

我尝试将字符串分解为字符串数组,然后将每个值转换为 Int,然后再存储到每个数组字段中。没有运气:

for (var i = O; i<datasArray.length; i++) {
    byteArr[i] = Int32.Parse(datasArray);  //error, cannot convert int to byte
}

请问我该怎么办?

怎么样Byte.Parse

for (var i = O; i<datasArray.length; i++) {
    byteArr[i] = Byte.Parse(datasArray[i]);  
}

还有Convert.ToByte(string val)

string datas = "123, 234, 123, 234, 123, 123, 234";

byte[] byteArr = datas.Split(',').Select(b => Convert.ToByte(b)).ToArray();

ConvertAll 非常快

byte[] byteArr = Array.ConvertAll(datasArray, Byte.Parse);
static byte[] CommaStringToBytes(string s)
{
  return s.Split(',').Select (t => byte.Parse (t.Trim())).ToArray ();  
}

您可以使用简单的正则表达式从字符串中获取数字

string datas = "123, 234, 123, 234, 123, 123, 234";
byte[] byteArr = Regex.Matches(datas, @"\d+").Cast<Match>()
                .Select(m => byte.Parse(m.Value))
                .ToArray();