例如: 
byte[] barr1 = //初始化值 
string sarr = //将barr1转化成string类型 
byte[] barr2 = //将sarr转化成byte[]类型 
最终使得结果(barr1==barr2)=true 
望指教!!

解决方案 »

  1.   

    barr1==barr2 是不会成立的,只能循环去比较每个元素
      

  2.   

    你再怎么变,barr1==barr2都不可能返回true的
    数组是引用类型
      

  3.   


    using System;using System.Runtime.InteropServices;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                byte[] barr1=new byte[6]{ 1,2,3,4,5,6};
                int size = Marshal.SizeOf(barr1[0]) * barr1.Length;
                IntPtr pnt = Marshal.AllocHGlobal(size);
                Marshal.Copy(barr1, 0, pnt, barr1.Length);            string str = Marshal.PtrToStringAnsi(pnt, barr1.Length);            IntPtr p2 = Marshal.StringToHGlobalAnsi(str);
                byte[] barr2 = new byte[barr1.Length];
                Marshal.Copy(p2, barr2, 0, barr1.Length);
                for (int i = 0; i < barr1.Length; i++)
                {
                    if (barr2[i] != barr1[i])
                        Console.WriteLine("不等");
                }
            }
        }
    }
      

  4.   

    barr1==barr2是数组来的,只能去对比数组里面的元素
      

  5.   

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

  6.   

    大家的主意都很好,但是barr1中的内容是从Stream中读取转换过来的,编码可能有些问题,谁能解决编码问题,再追加10分
      

  7.   

     byte[] barr1 = ...;
     string str64 = System.Convert.ToBase64String(barr1);
     byte[] barr2 = System.Convert.FromBase64String(str64);