C# ArrayList转byte[]

Code生涯刚开始 2017-10-14 12:40:33
ArrayList中添加的都是byte[],如何将ArrayList中的所有byte[]转换成一个byte[]?

ArrayList array = new ArrayList();
byte[] b = { 1, 2, 3, 4 };
byte[] c = { 5, 6, 7, 8 };
byte[] d = { 9, 10 };
array.Add(b);
array.Add(c);
array.Add(d);
byte[] totalBytes = new byte[100];

如上,如何将array中的b、c、d三个数组都添加到totalbytes数组中
...全文
572 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
对于输入 List<Byte[]>、输出 List<byte>(并且用不着多余地声明什么100)来说,给你写一个例子:
List<byte[]> array = new List<byte[]>
{
    new byte[]{1,2,3,4 },
    new byte[]{5,6,7,8},
    new byte[]{9,10}
};
var result = array.Aggregate(new List<byte>(), (s, x) =>
{
    s.AddRange(x);
    return s;
});
搞懂这里的深一层的算法更重要,不要抄皮毛。
xuzuning 2017-10-15
  • 打赏
  • 举报
回复
            int o = 0;
            foreach (byte[] x in array)
            {
                Array.Copy(x, 0, totalBytes, o, x.Length);
                o += x.Length;
            }
xian_wwq 2017-10-15
  • 打赏
  • 举报
回复
如果对转换效率要求不高,序列化ArrayList比较简单
njit_77 2017-10-14
  • 打赏
  • 举报
回复
引用 楼主 qq_22857385 的回复:
ArrayList中添加的都是byte[],如何将ArrayList中的所有byte[]转换成一个byte[]? ArrayList array = new ArrayList(); byte[] b = { 1, 2, 3, 4 }; byte[] c = { 5, 6, 7, 8 }; byte[] d = { 9, 10 }; array.Add(b); array.Add(c); array.Add(d); byte[] totalBytes = new byte[100]; 如上,如何将array中的b、c、d三个数组都添加到totalbytes数组中
            int index = 0;
            foreach (byte[] item in array)
            {
                foreach (byte byValue in item)
                {
                    totalBytes[index++] = byValue;
                }
            }
            array.CopyTo(totalBytes, 0);

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧