你怎么做呢?给定一个字节数组:
byte[] foo = new byte[4096]; 我将如何获得数组的前x个字节作为单独的数组?(具体来说,我需要它作为IEnumerable )
这是与Sockets 一起使用的。我认为最简单的方法是数组切片,类似于Perls语法:
@bar = @foo[0..40]; 它将返回前41个元素到@bar数组中。我只是想在C#中缺少某些东西,还是应该做一些其他事情?
LINQ对我来说是一个选项(.NET 3.5),如果有帮助的话。
语法为array[statrtIndex..length],也就是说length为40时返回的是前40个元素,最大索引为39
数组是可枚举的,所以您本身foo就是一个数组IEnumerable 。只需使用LINQ序列方法Take()就可以从中获得想要的内容(不要忘了使用来包含Linq名称空间 using System.Linq;):
byte[] foo = new byte[4096];
var bar = foo.Take(41); 如果确实需要任何IEnumerable 值的数组,则可以使用该ToArray()方法。这里似乎并非如此。 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。