3

好的,在任何人试图将其标记为重复之前,我并不是要一个字符串到一个字节数组。我想要一个字符串数组,包含类似这样的内容: {"5","168","188","28","29","155"} 被转换为字节数组。我已经搜索过,只能找到字符串到字节数组,这是完全不同的。谢谢。

编辑:数组将被预设,以便每个成员都可以通过 byte.Parse 解析,所以这不是问题。

4

4 回答 4

10

对于无法解析的任何内容,这将失败byte.Parse

var str = new[] {"5", "168", "188", "28", "29", "155"};
var byt = str.Select(byte.Parse).ToArray();
于 2012-06-29T20:31:08.007 回答
6

您必须将每个字符串解析为一个字节并放入一个新数组中。您可以遍历项目并转换每个项目:

string[] strings = { "5", "168", "188", "28", "29", "155" };
byte[] bytes = new byte[strings.length];
for (int i = 0; i < strings.Length; i++) {
  bytes[i] = Byte.Parse(strings[i]);
}

您也可以使用以下Array.ConvertAll方法

string[] strings = { "5", "168", "188", "28", "29", "155" };
byte[] bytes = Array.ConvertAll(strings, Byte.Parse);

您还可以使用 LINQ 扩展来执行此操作:

string[] strings = { "5", "168", "188", "28", "29", "155" };
bytes = strings.Select(Byte.Parse).ToArray();
于 2012-06-29T20:36:14.237 回答
2

假设您的意思是您有一个字符串数组,例如string[] myArray = {"5","168",...};

myArray.Select(x => byte.Parse(x)).ToArray();

或者:

myArray.Select(byte.Parse).ToArray();
于 2012-06-29T20:30:58.267 回答
2

试试这个

带 linq

string[] strings = new[] { "1", "2", "3", "4" };
byte[] byteArray = strings.Select(x =>  byte.Parse(x)).ToArray();

没有 linq

string[] strings = { "1", "2", "3", "4" };

byte[] bytArr = new byte[strings.Length];

int i = 0;

foreach(String text in strings)
{
  bytArr[i++] = byte.Parse(text);  
}
于 2012-06-29T20:31:18.557 回答