你怎么做呢?给定一个字节数组:
byte[] foo = new byte[4096];
Run Code Online (Sandbox Code Playgroud)
如何将数组的前x个字节作为单独的数组?(具体来说,我需要它作为一个IEnumerable<byte>)
这是为了与Sockets合作.我认为最简单的方法是数组切片,类似于Perls语法:
@bar = @foo[0..40];
Run Code Online (Sandbox Code Playgroud)
这会将前41个元素返回到@bar数组中.C#中有些东西我只是缺少,还是还有其他一些我应该做的事情?
LINQ对我来说是一个选项(.NET 3.5),如果这有帮助的话.
最近我有建议span<T>在我的代码中使用's,或者在网站上看到了一些使用span's - 应该是某种容器的答案.但是 - 我在C++标准库中找不到类似的东西.
那么这个神秘的是什么span<T>,以及为什么(或什么时候)使用它是一个好主意,如果它是非标准的?
C#8.0引入了一种切片阵列的便捷方法 - 参见官方C#8.0博文.
访问数组的最后一个元素的语法是
int value[] = { 10, 11, 12, 13 };
int a = value[^1]; // 13
int b = value[^2]; // 12
Run Code Online (Sandbox Code Playgroud)
我想知道为什么向后访问元素的索引从1开始而不是0?这有技术原因吗?
我想将一个C#数组的子集传递给一个方法.我不在乎该方法是否覆盖数据,因此希望避免创建副本.
有没有办法做到这一点?
谢谢.