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

有效地获取数组子集

如何解决《有效地获取数组子集》经验,为你挑选了1个好方法。

是否有一种有效的方法来获取C#数组的子集并将其传递给另一个代码(不修改原始数组)?我使用CUDA.net,它具有将数组复制到GPU的功能.我想例如将函数传递给数组的第10个,从而将每个第10个数组分别复制到GPU(用于流水线操作).

以这种方式复制数组应该像一次复制一样高效.它可以使用不安全的代码完成,只需引用正确的内存位置,但我不确定.CopyTo函数将整个数组复制到另一个数组,因此这似乎没有用处.



1> Jon Skeet..:

好吧,我以前误解了这个问题.

你想要的是System.Buffer.BlockCopy或System.Array.Copy.

LINQ方式将非常低效.如果你能够重用你正在复制的缓冲区,这也有助于提高效率,避免每次创建一个新数组 - 只需复制到顶部.除非你可以平分你的"大"阵列,否则你需要为最后一个案例添加一个新阵列.

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