当前位置:  开发笔记 > 编程语言 > 正文

如何将byte []缓冲区复合到List <byte>中?

如何解决《如何将byte[]缓冲区复合到List<byte>中?》经验,为你挑选了1个好方法。

所以我使用大小为1024的缓冲区(byte [])通过套接字接收数据,并且我希望将它们组合在一起,以便在它们大于1024字节的情况下形成整个数据包.我选择了一个List来存储整个数据包,我想要做的是在它进入时添加读取的每个缓冲区.我想做:

List.AddRange(Buffer);

但是如果缓冲区未满,则会将一堆空字节填充到最后.所以我自然想要做的只是在List中添加一定范围的字节,但是没有这样的方法.我总是可以创建一个完全接收的字节数的临时字节数组,然后使用AddRange()并得到我想要的结果,但这对我来说似乎很愚蠢.更不用说它会创建然后在每次读取数据时丢弃一个数组,这对可伸缩多用户服务器上的性能不利.

有没有办法用List做到这一点?或者我可以使用其他一些数据结构吗?



1> FryGuy..:

如果您使用的是C#3.5(LINQ)

list.AddRange(buffer.Take(count));

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有