如何在运行时增加字节 [] 大小

本文关键字:大小 字节 增加 运行时 | 更新日期: 2023-09-27 17:56:27

我必须在运行时增加byte[]数组大小。
如何在运行时增加 byte[] 数组大小?

如何在运行时增加字节 [] 大小

为什么似乎没有人知道 Array.Resize

 Array.Resize(ref myArray, 1024);

简单如馅饼。

PS:_as根据MSDN的评论,显然3.0中的MSDN文档中缺少这一点。

你不能:数组是固定大小的。1

要么使用可重新调整大小的集合(例如。 List<byte> ) 或创建一个新的更大的数组并复制原始数组的内容。


1 Array.Resize 不会修改传递的数组对象:它会创建一个新数组并复制元素。它只是节省您自己编码的时间。区别很重要:对旧数组的其他引用将继续看到旧数组。

您可以分配一个新数组并使用Array.Copy(..)复制字节

byte[] oldArr = new byte[1024];
byte[] newArr = new byte[oldArr.Length * 2];
System.Array.Copy(oldArr, newArr, oldArr.Length);
oldArr = newArr;

如果你必须增加它,为什么不首先从List<byte>开始呢?

数组的大小

是固定的,不能在运行时动态更改。

您唯一的选择是创建一个所需大小的新数组,并将旧数组中的所有字节复制到新数组。

但是为什么要用这个来折磨自己,而不是使用List<byte>,简单地随意添加或删除元素呢?