futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

C#の配列コピーでつまづいたこと。

プログラミングをしていて、配列をそのままごっそり別の配列にコピーをする時、
だいたいこんな風にします。

arrayA = arrayB

これで配列arrayAに配列arrayBをコピーしたことになる。

ですが、C#ではそうではなかったです。
上と同じ動きをC#でやるにはこうやらないとだめでした。

arrayB.CopyTo(arrayA, 0)

カッコの中の0はインデックス(添字)で、arrayBの配列のどこからをコピーするか指定できます。
0だと全部コピーですね。

ちなみにC#で=を使った方法だと同じアドレスを参照する配列になります。
つまりarrayAの中身を変えるとarrayBの中身も変わってる。
同じ箱を見てるからですね。

これ調べるのに結構手間取ったので、備忘録的に書き記しておきます。
誰かの参考になればいいなと。

(こんなん迷わねえよ!とか思われるかもしれないけどね!)