1次元配列を2次元配列のように扱うクラス

//2次元配列が使いづらいので、
//こういうコード書いた

//1次元配列を2次元配列のように扱うクラス
public sealed class Array2D {
//元となる1次元配列
public T[] BaseArray { get; }
//横方向の要素数
public int LengthX { get; }
//縦方向の要素数
public int LengthY { get; }

//コンストラクタで2つの要素数を指定
public Array2D(int lenX, int lenY) {
//要素数を指定
LengthX = lenX; //横方向を指定
LengthY = lenY; //縦方向を指定
//1次元配列の作成
BaseArray = new T[LengthX * LengthY];
}

//2次元配列のようにアクセスできるようにする
public T this[int indexX, int indexY] {
get => BaseArray[GetReadIndex(indexX, indexY)];
set => BaseArray[GetReadIndex(indexX, indexY)] = value;
}

//1次元配列用の番地を取得
int GetReadIndex(int indexX, int indexY) {
//1次元配列用の番地は
//
// 横方向の番地 + 縦方向の番地 × 横方向の要素数
//
//で求まる
return indexX + indexY * LengthX;
}
}
スポンサーサイト
プロフィール

みにおん

Author:みにおん
c#でゲームを作る人です
web小説なども書いています

低学歴で馬鹿なのパート従業員
ですが、よろしく

相互リンク・ブロとも募集中です
コメントなどご自由にどうぞ

ホームページを見る
Twitter(個人ページ)
PIXIV(個人ページ)

○自作ゲーム一覧
ふりーむ
フリーゲーム夢幻
100%ふりげストア
ゲームモリモリ

・web小説
最後の時の夢

よろしければ、1日1クリックお願いします
にほんブログ村 ゲームブログ 無料ゲームへ
にほんブログ村

にほんブログ村 小説ブログ ライトノベル(小説)へ
にほんブログ村

最新記事
最新コメント
月別アーカイブ
カテゴリ
ブロとも一覧

誰よりも楽しく普通のこと

ゲームアプリ、ラインスタンプ開発日記(MMA Bros)

ミリオネアインテリジェンス!!!!! 資格編

ひろかずのブログ

srpの路地裏
検索フォーム
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
リンク
アクセスランキング
QRコード
QR