如何在运行时增加byte []大小?

时间:2011-05-16 12:02:23

标签: c# arrays

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

5 个答案:

答案 0 :(得分:57)

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

 Array.Resize(ref myArray, 1024);

简单如馅饼。

PS:根据对MSDN的评论,显然这在3.0中的MSDN文档中没有找到;这可以解释它的流行点火

答案 1 :(得分:13)

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

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


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

答案 2 :(得分:7)

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

复制字节数
byte[] oldArr = new byte[1024];
byte[] newArr = new byte[oldArr.Length * 2];

System.Array.Copy(oldArr, newArr, oldArr.Length);

oldArr = newArr;

答案 3 :(得分:3)

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

答案 4 :(得分:2)

数组的大小固定,无法在运行时动态更改。

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

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