如何在运行时增加字节 [] 大小
本文关键字:大小 字节 增加 运行时 | 更新日期: 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>
,简单地随意添加或删除元素呢?