ここから本文です

C#の多次元配列間のコピーについて 例えば下のように多次元配列を宣言したとし...

アバター

ID非公開さん

2019/3/315:06:51

C#の多次元配列間のコピーについて

例えば下のように多次元配列を宣言したとして。

int[,] hairetu = new int[2,3];

この場合、配列の行数と列数は以下のようになるという認識で合っていますでしょうか?
1行目 [0,0][0,1][0,2]
2行目 [1,0][1,1][1,2]

また、それぞれの中身が色々あって下の要素を含んだとして。
1行目 2,3,4
2行目 6,7,8

この2行目の要素【6,7,8】を、1行目の要素【2,3,4】の位置に値渡しでコピー(移動)させたい場合、Array.Copyで出来るのでしょうか?
for文で回すのがいいのでしょうか?ただ行数・列数ともにもっと大きな値でやりたいと思うのであまり時間がかかることは避けたいのですが...。

方法をご存じの方いらっしゃいましたら初心者の私にどうかご教授願えればと思います。
よろしくお願いします。

閲覧数:
33
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kar********さん

2019/3/315:48:34

二次元配列よりジャグ配列はどうでしょうか?
(データ数がどうなのかわからないので適切とは言い難いですが・・・・)

int[][] hairetu = new int[2][];

hairetu[0] = new int[] { 2, 3, 4 };
hairetu[1] = new int[] { 6, 7, 8 };

for (int i = 0; i < hairetu.Length; i++)
{
for (int j = 0; j < hairetu[i].Length; j++)
{
Console.Write(" {0}-{1} {2} |", i, j, hairetu[i][j]);
}
Console.WriteLine();
}

hairetu[0] = hairetu[1];

Console.WriteLine("-----------");

for (int i = 0; i < hairetu.Length; i++)
{
for (int j = 0; j < hairetu[i].Length; j++)
{
Console.Write(" {0}-{1} {2} |", i, j, hairetu[i][j]);
}
Console.WriteLine();
}

出力:

0-0 2 | 0-1 3 | 0-2 4 |
1-0 6 | 1-1 7 | 1-2 8 |
-----------
0-0 6 | 0-1 7 | 0-2 8 |
1-0 6 | 1-1 7 | 1-2 8 |

うちのは古いし余り詳しくはないですが、結局データファイル(?)の仕様次第で考え方も変わると思いますよ。

アバター

質問した人からのコメント

2019/3/3 17:21:39

ありがとうございます。
正直ジャグ配列は個人的に難しく感じていて理解が追いついていないのですが、これを機会にジャグ配列を勉強して目的に合う方を選択してみます。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる