好的,在任何人试图将其标记为重复之前,我不要求字符串到字节数组。我想要一个字符串数组,包含类似这样的东西:{“5”,“168”,“188”,“28”,“29”,“155”}转换为字节数组。我已经搜索过,并且只能找到字符串到字节数组,这是完全不同的。感谢。
编辑:将预设数组,以便通过byte.Parse解析每个成员,因此这不是问题。
答案 0 :(得分:5)
byte.Parse
var str = new[] {"5", "168", "188", "28", "29", "155"};
var byt = str.Select(byte.Parse).ToArray();
答案 1 :(得分:4)
您必须将每个字符串解析为一个字节并放入一个新数组中。您可以循环浏览项目并转换每个项目:
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
method:
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();
答案 2 :(得分:1)
假设你的意思是你有一个像string[] myArray = {"5","168",...};
这样的字符串数组:
myArray.Select(x => byte.Parse(x)).ToArray();
或者:
myArray.Select(byte.Parse).ToArray();
答案 3 :(得分:1)
试试这个
使用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);
}