35

現在、Array.Copy を使用して配列をシフトしています。

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

ループを使用するよりも顕著に高速です。他の言語 (memcpy など) の同様の関数は定義されていないか、コンパイラが攻撃的になりすぎると壊れることがあることを知っています。これが .NET で安全であると考えるのは合理的ですか?

4

1 に答える 1

40

はい、安全です。この場合、メソッドがどのように動作するかが文書化されています。

sourceArray と destinationArray が重複している場合、このメソッドは、sourceArray の元の値が一時的な場所に保持されてから、destinationArray が上書きされるかのように動作します。

于 2012-06-22T03:07:52.343 に答える