string[] arr = aa.Split('|'); byte[] bytes = new byte[arr.Length]; for(int i = 0 ;i < arr.Length; i++) { bytes[i] = new byte(int.Parse(arr[i])); } 没测试 ~~~~
写错了... bytes[i] = new (byte)int.Parse(arr[i]);
咳咳 又写错了 bytes[i] = (byte)int.Parse(arr[i]);
你的这个要求直接进行字符串拆分就行,你得到的根本上不是byte
byte 0 到 255 无符号 8 位整数 System.Byte
string [] arr=str.split('|'); List<int> list=new List<int>(); foreach(string s in arr) { list.Add(int.Parse(s)); }
正如4楼所说,byte的范围是0-255,哪来的负数? 下面是转成int的,参考一下吧:string aa = "-119|80|78|71|-13|-10|"; int[] result = Array.ConvertAll<string,int>(aa.Split('|'),Convert.ToInt32);
已经解决得差不多了,我来一段Linq的代码: string source = "-119|80|78|71|-13|-10|"; sbyte[] array = (from part in source.Split('|') where !string.IsNullOrEmpty(part) select Convert.ToSByte(part)).ToArray();
byte[] bytes = new byte[arr.Length];
for(int i = 0 ;i < arr.Length; i++)
{
bytes[i] = new byte(int.Parse(arr[i]));
}
没测试 ~~~~
bytes[i] = new (byte)int.Parse(arr[i]);
bytes[i] = (byte)int.Parse(arr[i]);
byte
0 到 255
无符号 8 位整数
System.Byte
string [] arr=str.split('|');
List<int> list=new List<int>();
foreach(string s in arr)
{
list.Add(int.Parse(s));
}
下面是转成int的,参考一下吧:string aa = "-119|80|78|71|-13|-10|";
int[] result = Array.ConvertAll<string,int>(aa.Split('|'),Convert.ToInt32);
sbyte[] array = (from part in source.Split('|')
where !string.IsNullOrEmpty(part)
select Convert.ToSByte(part)).ToArray();
很好 很强大 第一次见Linq代码 .... 汗一个
客户段接受后,要还原后Byte【】 数组 ,这种方式 我在Java中实现了啊 能够 显示图片 ,到了 C# 中 不支持了啊 ,不会是 Java 中的 Byte 和C# 中的 byte 范围不一样吧
C#中的为0~127
但我试过用Java做的客户端上传至用C#做的服务器数据。发现其中数据会自动修正
如:Java:{65,-85,99,44} 转至C#:{65,171,99,44}但是在java中将数据转换为BYTE时,数据是反转的
如同样一个数据21.423423f
在Java中转为BYTE[]为{65,-85,99,44}
但到了C#中转为BYTE[]则为{44,99,171,65}所以我当时是在客户端(java)用一个函数将BYTE[]中的数据反转过来后,再发送到服务器端,
这样才成功的。希望对你有帮助