现在 我有这么一个 字符创
String aa = "-119|80|78|71|-13|-10|";我想 生成一个 byte aa = new [] {-119,80,78,-13,-10,};byte 数组 中的 每个值 需与 字符传中的 每个数值 相同 并且 顺序 不变,要求 用 C# 完成  

解决方案 »

  1.   

    byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );
      

  2.   

    冒昧问一下   byte  有正负?
      

  3.   

    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]));
    }
    没测试 ~~~~
      

  4.   

    写错了...
    bytes[i] = new (byte)int.Parse(arr[i]); 
      

  5.   

    咳咳 又写错了
    bytes[i] = (byte)int.Parse(arr[i]); 
      

  6.   

    你的这个要求直接进行字符串拆分就行,你得到的根本上不是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));
    }
      

  7.   

    正如4楼所说,byte的范围是0-255,哪来的负数?
    下面是转成int的,参考一下吧:string aa = "-119|80|78|71|-13|-10|"; 
    int[] result = Array.ConvertAll<string,int>(aa.Split('|'),Convert.ToInt32);
      

  8.   

    已经解决得差不多了,我来一段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();
      

  9.   


    很好 很强大 第一次见Linq代码 .... 汗一个
      

  10.   

     其实 我这是 网络过程中 传输图片 ,我吧图片 转成 字节流 然后 每个字节 中间添加| 组合成字符传 就是-119|80|78|71|-13|-10| 这种形式
    客户段接受后,要还原后Byte【】 数组 ,这种方式 我在Java中实现了啊 能够 显示图片 ,到了 C# 中 不支持了啊 ,不会是 Java 中的 Byte 和C# 中的 byte 范围不一样吧
      

  11.   

    java中的BYTE为-128~127
    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[]中的数据反转过来后,再发送到服务器端,
    这样才成功的。希望对你有帮助