35

我目前正在使用 Array.Copy 来移动数组:

Array.Copy(array, 0, array, 1, array.Length - 1);

这比使用循环要快得多。我知道其他语言(例如 memcpy)中的类似函数是未定义的,或者当编译器过于激进时有时会中断。在 .NET 中考虑这个安全是否合理?

4

1 回答 1

40

是的,它是安全的。记录了该方法在这种情况下的行为方式:

如果 sourceArray 和destinationArray 重叠,则此方法的行为就像在覆盖destinationArray 之前将sourceArray 的原始值保存在临时位置一样。

于 2012-06-22T03:07:52.343 回答