如何使用 Array ConvertAll 将字符串数组转换为字节数组?
How do I convert a string array to a byte array using Array ConvertAll?
我可以将 string[]
转换为 byte[]
,如以下代码所示:
byte[] k = {255, 150, 155, 255, 255, 255, 255, 255, 255, 255, 55, 55, 15, 55, 155, 55};
string st = BitConverter.ToString(Array.ConvertAll(k, Convert.ToByte));
byte[] kk = new byte[16];
string[] sts = st.Split('-');
for (int i = 0; i < 16; i++)
{
kk[i] = Convert.ToByte(sts[i], 16);
}
但是我不能像下面的代码那样对 LINQ 做同样的事情:
Array.ConvertAll(sts,item=>(byte) Convert.ToByte(item, 16))
如何在 LINQ 中完成这项工作?
为什么它在 Visual Studio 的 "Immediate Window" 中不起作用?
Lambda 表达式在 "Immediate" 和 "Watch" windows.
中不起作用
您的代码确实有效。也许你忘记了一个分号:
var a = Array.ConvertAll(sts, s => Convert.ToByte(s, 16));
这是从字节数组(或双精度数组)转换为字符串以及从字符串转换为 byte/double 数组的优雅解决方案。 :)
double[] k = {255, 150, 155, 25, 2, 55, 66};
string st = BitConverter.ToString( Array.ConvertAll(k, Convert.ToByte));
从字符串到双数组...
double[] kk = Array.ConvertAll(st.Split('-'), s => (double) Convert.ToByte(s, 16));
我可以将 string[]
转换为 byte[]
,如以下代码所示:
byte[] k = {255, 150, 155, 255, 255, 255, 255, 255, 255, 255, 55, 55, 15, 55, 155, 55};
string st = BitConverter.ToString(Array.ConvertAll(k, Convert.ToByte));
byte[] kk = new byte[16];
string[] sts = st.Split('-');
for (int i = 0; i < 16; i++)
{
kk[i] = Convert.ToByte(sts[i], 16);
}
但是我不能像下面的代码那样对 LINQ 做同样的事情:
Array.ConvertAll(sts,item=>(byte) Convert.ToByte(item, 16))
如何在 LINQ 中完成这项工作?
为什么它在 Visual Studio 的 "Immediate Window" 中不起作用?
Lambda 表达式在 "Immediate" 和 "Watch" windows.
中不起作用您的代码确实有效。也许你忘记了一个分号:
var a = Array.ConvertAll(sts, s => Convert.ToByte(s, 16));
这是从字节数组(或双精度数组)转换为字符串以及从字符串转换为 byte/double 数组的优雅解决方案。 :)
double[] k = {255, 150, 155, 25, 2, 55, 66};
string st = BitConverter.ToString( Array.ConvertAll(k, Convert.ToByte));
从字符串到双数组...
double[] kk = Array.ConvertAll(st.Split('-'), s => (double) Convert.ToByte(s, 16));