在c#中怎么将array数组转换成byte[]

解决方案 »

  1.   

    是一个二维数组,里面存放的是float型,想转换成byte[]
      

  2.   

    /// <summary>
            /// 把二维float数组转为一维byte数组。
            /// </summary>
            /// <param name="input"></param>
            /// <returns></returns>
            private static Byte[] GetBytes(float[][] input)
            {
                List<Byte> bytes = new List<Byte>();
                if (input != null)
                {
                    foreach (float[] floats in input)
                    {
                        foreach (float f in floats)
                        {
                            Byte b = Convert.ToByte(f);
                            bytes.Add(b);
                        }
                    }
                }            return bytes.ToArray();
            }        /// <summary>
            /// 把二维float数组转为二维byte数组。
            /// </summary>
            /// <param name="input"></param>
            /// <returns></returns>
            private static Byte[][] GetBytes2(float[][] input)
            {
                List<List<Byte>> bytes = new List<List<Byte>>();
                if (input != null)
                {
                    foreach (float[] floats in input)
                    {
                        List<Byte> temp = new List<byte>();
                        foreach (float f in floats)
                        {
                            Byte b = Convert.ToByte(f);
                            temp.Add(b);
                        }
                        bytes.Add(temp);
                    }
                }            byte[][] result = new byte[bytes.Count][];
                for (int i = 0; i < bytes.Count; i++)
                {
                    List<byte> list = bytes[i];
                    result[i] = list.ToArray();
                }
                return result;
            }
      

  3.   

    我想要将Array数组转换成byte[]和byte[]转换成Array数组的代码,形参应该是(Array array);
      

  4.   

    1维数组
    float[] f = new float[2] { 1.1f, 1.2f };
    byte[] b = new byte[f.Length << 2];
    Buffer.BlockCopy(f, 0, b, 0, b.Length);2维数组
    float[,] f = new float[2, 2] { { 1.1f, 1.2f }, { 2.1f, 2.2f } };
    byte[] b = new byte[f.Length << 2];
    Buffer.BlockCopy(f, 0, b, 0, b.Length);
      

  5.   

    将byte[]转换成Array呢?也一样用Buffer.BlockCopy么?
      

  6.   

    反过来copy就可以了
    仅限于值类型数组,引用类型数组不能使用(包括object[]中只放类似float等值类型的情况)