好的,在有人试图将其标记为重复之前,我不是要求将字符串转换为字节数组。我想要一个字符串数组,其中包含类似于这样的内容:{"5","168","188","28","29","155"} 转换为字节数组。我已经搜索过了,只能找到将字符串转换为字节数组的方法,这与我的需求相当不同。谢谢。
编辑:该数组将预设,以便通过byte.Parse解析每个成员,因此这不是问题。
编辑:该数组将预设,以便通过byte.Parse解析每个成员,因此这不是问题。
对于任何无法被byte.Parse
解析的内容,此方法将失败。
var str = new[] {"5", "168", "188", "28", "29", "155"};
var byt = str.Select(byte.Parse).ToArray();
您需要将每个字符串解析成一个字节并放入新的数组中。您只需循环遍历所有项并将每个字符串转换即可:
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();
假设您的意思是您有一个字符串数组,例如 string[] myArray = {"5","168",...};
:
myArray.Select(x => byte.Parse(x)).ToArray();
或者:
myArray.Select(byte.Parse).ToArray();
试试这个
使用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);
}
new string[] {"5","168","188"}
或者包含了数组语法的字符串,比如"[5,168,188]"
? - Guffanew byte[] {5, 168, 188, 28, 29, 155}
? - James