你怎么做呢?给定一个字节数组:
byte[] foo = new byte[4096];
我将如何获得数组的前x个字节作为单独的数组?(具体来说,我需要它作为IEnumerable<byte>)
IEnumerable<byte>
这是与Sockets 一起使用的。我认为最简单的方法是数组切片,类似于Perls语法:
Socket
@bar = @foo[0..40];
它将返回前41个元素到@bar数组中。我只是想在C#中缺少某些东西,还是应该做一些其他事情?
@bar
LINQ对我来说是一个选项(.NET 3.5),如果有帮助的话。
数组是可枚举的,所以您本身foo就是一个数组IEnumerable<byte>。只需使用LINQ序列方法Take()就可以从中获得想要的内容(不要忘了使用来包含Linq名称空间 using System.Linq;):
foo
Take()
Linq
using System.Linq;
byte[] foo = new byte[4096]; var bar = foo.Take(41);
如果确实需要任何IEnumerable<byte>值的数组,则可以使用该ToArray()方法。这里似乎并非如此。
ToArray()