多个byte[] 如何合并

禁用F3 2020-09-28 02:36:48
byte[] data = new byte[8000];
如后把其它的byte[] 如何合并到data里面?
...全文
8120 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我常用的两个办法。简单易用。 Array.Copy LIST<BYTE> 运算得多,就用LIST, 只是增加减少就用第一个。
six2me 2020-10-16
  • 打赏
  • 举报
回复
byte[] cmd = new byte[128]; byte[] cmd1 = new byte[128]; List<byte> newCmd = new List<byte>(); newCmd.AddRange(Cmd); newCmd.AddRange(cmd1); cmd = newCmd.ToArray();
  • 打赏
  • 举报
回复
引用 2 楼 The 祺℡的回复:
using System.Linq;

byte[] data1 = new byte[8000];
byte[] data2 = new byte[2000];
data1 = data1.Concat(data2).ToArray();
using System.Linq; byte[] data1 = new byte[8000]; byte[] data2 = new byte[2000]; data1 = data1.Concat(data2).ToArray(); 方法二 Array.Copy(b2, 0, b1, 0, b2.Length); 两个都可以 list也可以
橘子皮... 2020-10-01
  • 打赏
  • 举报
回复

Public Function BytesJoin(Of T)(ByVal ParamArray bytesparams()() As T) As T()       'bytesparams()的话是byte
        Dim n, k As Integer
        For i = 0 To bytesparams.Length - 1
            n += bytesparams(i).Length
        Next
        Dim allbytes(n - 1) As T
        For i = 0 To bytesparams.Length - 1
            bytesparams(i).CopyTo(allbytes, k)
            k += bytesparams(i).Length
        Next
        Return allbytes
    End Function
千杯不醉-sen 2020-09-30
  • 打赏
  • 举报
回复

            int[] b1 = new int[] { 1, 2, 3 };
            int[] b2 = new int[] { 4, 5, 6 };
            int[] data = b1.Concat(b2).ToArray();
datafansbj 2020-09-30
  • 打赏
  • 举报
回复
Array.Copy 是效率最高的方式,其他的方式效率较低。
libolei 2020-09-30
  • 打赏
  • 举报
回复
引用 2 楼 The 祺℡ 的回复:
using System.Linq; byte[] data1 = new byte[8000]; byte[] data2 = new byte[2000]; data1 = data1.Concat(data2).ToArray();
最后代码改成这样 byte[] data3 = data1.Concat(data2).ToArray();
The 祺℡ 2020-09-29
  • 打赏
  • 举报
回复
引用 5 楼 禁用F3 的回复:
[quote=引用 2 楼 The 祺℡的回复:]
using System.Linq;

byte[] data1 = new byte[8000];
byte[] data2 = new byte[2000];
data1 = data1.Concat(data2).ToArray();

这个连接一起,长度没有变的感觉[/quote]


data1.Concat(data2).ToArray(); data1的的长度不会变,得把ToArray的返回值重新赋值给变量才行。
qq_25073223 2020-09-28
  • 打赏
  • 举报
回复
定义一个新字节数组,然后将字节数组放入新的字节数组中,如:字节数组合并的方法分享
禁用F3 2020-09-28
  • 打赏
  • 举报
回复
引用 2 楼 The 祺℡的回复:
using System.Linq;

byte[] data1 = new byte[8000];
byte[] data2 = new byte[2000];
data1 = data1.Concat(data2).ToArray();
这个连接一起,长度没有变的感觉
Bridge_go 2020-09-28
  • 打赏
  • 举报
回复
byte[] b1 = new byte[1024];
byte[] b2 = new byte[16];
Array.Copy(b2, 0, b1, 0, b2.Length);
禁用F3 2020-09-28
  • 打赏
  • 举报
回复
引用 1 楼 bloodish的回复:

            byte[] b1 = new byte[10];
            byte[] b2 = new byte[100];
            //more byte arraies
            byte[] data;
            using(var ms = new MemoryStream())
            {
                ms.Write(b1, 0, b1.Length);
                ms.Write(b2, 0, b2.Length);
                data= ms.ToArray();
            }
那怎么循环问data里面写呢?
The 祺℡ 2020-09-28
  • 打赏
  • 举报
回复

using System.Linq;

byte[] data1 = new byte[8000];
byte[] data2 = new byte[2000];
data1 = data1.Concat(data2).ToArray();
bloodish 2020-09-28
  • 打赏
  • 举报
回复

            byte[] b1 = new byte[10];
            byte[] b2 = new byte[100];
            //more byte arraies
            byte[] data;
            using(var ms = new MemoryStream())
            {
                ms.Write(b1, 0, b1.Length);
                ms.Write(b2, 0, b2.Length);
                data= ms.ToArray();
            }

110,555

社区成员

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

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

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