复制C#多维数组元素的最有效方法是什么?
|
在C#中从一个多维数组复制到另一个多维数组时,嵌套循环的最有效方法是什么?每个数组的上限和下限是不同的,所以我认为
Array.Copy()
不会对我有用。我目前有以下内容:
for (int x = lower.X; x <= upper.X; x++)
{
for (int y = lower.Y; y <= upper.Y; y++)
{
for (int z = lower.Z; z <= upper.Z; z++)
{
copy[x, y, z] = Elements[x, y, z];
}
}
}
这是一个相对较低级别的优化,因此编译器会为我照顾吗?当目标的上下限不同时,是否存在更好的方法来复制多维数组的元素?
没有找到相关结果
已邀请:
3 个回复
悸翠疮武昏
的文档介绍了如何对索引进行数学运算,以便您可以指定源位置和目标位置。 我强烈建议在所有有意义的地方都使用Array.Copy,因为它非常快。他们做了一些认真的汇编程序-foo以使其正常工作。 更新 我不确定这个修正有多接近,因为我还没有尝试过,但这就像我认为的那样:
渴翅吮斡撤
。如果一步无法解决问题,请将第一个多维数组复制到单维数组,然后将此单维数组复制到第二个多维数组。 参考文献: http://www.dotnetperls.com/buffer-blockcopy http://msdn.microsoft.com/zh-CN/library/system.buffer.blockcopy.aspx
细屠截殴些