假设我有以下变量:
byte[] fileData;
List<byte> bundleData;
并且我想使用
fileData
的连续部分并将其添加到bundleData
。我当前的方法基本上是以下几种:int startIndex = 20, endIndex = 80;
byte[] transferredData = new byte[endIndex - startIndex];
Array.Copy(fileData, startIndex, transferredData, 0, transferredData.Length);
bundleData.AddRange(transferredData);
创建中间数组可以很好地工作,但是它使用的似乎是不必要的副本。有什么方法可以直接添加数据,而无需使用冗余阵列?
作为参考,我在此项目上使用.NET 2.0。
最佳答案
如果您实际上不需要List 实例,则更好的选择可能是MemoryStream class:
MemoryStream类
创建一个后备存储为内存的流。
例:
MemoryStream bundleData = new MemoryStream();
bundleData.Write(fileData, startIndex, endIndex - startIndex + 1);