C# ネタで誰かの助けとなるとよいのでシェアします。
C# での配列のコピーに関して。
またやらかしたので、自分への備忘としても書いておきます。
C# の配列のコピー。たとえば配列 Array_A の中身を配列 Array_B にコピーして、別々にそれらを使用する場合。
Array_B=Array_A;
当然こうやってはいけません。
初級者でも常識でしょうが、これは参照を指定しているだけです。よって、Array_B を変更すると Array_A も変更されてしまいます。(と言うより、Array_A を変更しています。)
実際は、CopyToを使用する必要があります。
(コピー先の配列名、開始インデックス)
また、CopyToは1次元の配列だとよいですが、多次元だと以下のようなエラーが出ます。
C# での配列のコピーに関して。
またやらかしたので、自分への備忘としても書いておきます。
C# の配列のコピー。たとえば配列 Array_A の中身を配列 Array_B にコピーして、別々にそれらを使用する場合。
Array_B=Array_A;
当然こうやってはいけません。
初級者でも常識でしょうが、これは参照を指定しているだけです。よって、Array_B を変更すると Array_A も変更されてしまいます。(と言うより、Array_A を変更しています。)
実際は、CopyToを使用する必要があります。
Array_A.CopyTo (Array_B, 0);
(コピー先の配列名、開始インデックス)
また、CopyToは1次元の配列だとよいですが、多次元だと以下のようなエラーが出ます。
多次元の場合は Array.Copy で大丈夫です。
(コピー元の配列名、開始インデックス、コピー先の配列名、コピー先開始インデックス、コピーする要素数)
注意点はこちらは Using.System が必要となります。
using.System;
Array.Copy (Array_A, 0, Array_B, 0, 40);
(コピー元の配列名、開始インデックス、コピー先の配列名、コピー先開始インデックス、コピーする要素数)
注意点はこちらは Using.System が必要となります。
参照を指定しまい最初は偶然うまくいき、後から結果がおかしくなりデバックで苦労することはもう避けたいです。
Sponsored Link