因此,我正在使用大小为1024的缓冲区(byte [])通过套接字接收数据,并且如果它们大于1024字节,我想将读取组合在一起以形成整个数据包。我选择了一个列表来存储整个数据包,而我想要做的就是在读取数据时将每个缓冲区添加进去。我想这样做:
List.AddRange(Buffer);
但是,如果缓冲区未满,则会将一堆空字节填充到末尾。因此,我自然希望只向列表中添加一定范围的字节,但是没有这种方法。我总是可以创建一个与接收到的字节数完全相同的临时字节数组,然后使用AddRange()获得我想要的结果,但是对我来说这似乎很愚蠢。更不用说它会在每次读取数据时创建然后丢弃一个数组,这对可伸缩的多用户服务器的性能不利。
有没有办法做到这一点的名单?还是我可以使用其他数据结构?
最佳答案
如果您使用的是C#3.5(LINQ)
list.AddRange(buffer.Take(count));
关于c# - 如何将byte []缓冲区复合到List <byte>中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612283/