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