所以我使用大小为1024的缓冲区(byte [])通过套接字接收数据,并且我希望将它们组合在一起,以便在它们大于1024字节的情况下形成整个数据包.我选择了一个List来存储整个数据包,我想要做的是在它进入时添加读取的每个缓冲区.我想做:
List.AddRange(Buffer);
但是如果缓冲区未满,则会将一堆空字节填充到最后.所以我自然想要做的只是在List中添加一定范围的字节,但是没有这样的方法.我总是可以创建一个完全接收的字节数的临时字节数组,然后使用AddRange()并得到我想要的结果,但这对我来说似乎很愚蠢.更不用说它会创建然后在每次读取数据时丢弃一个数组,这对可伸缩多用户服务器上的性能不利.
有没有办法用List做到这一点?或者我可以使用其他一些数据结构吗?
如果您使用的是C#3.5(LINQ)
list.AddRange(buffer.Take(count));