2012-01-25 22 views
3

複数の整数ではなく、配列を使って多次元配列の特定の要素にアクセスできるかどうかは疑問でした。インデックスの配列を持つアクセス配列

例えば同様

int[,] map = sampleMap; 
int[] position = { 1, 2 }; 

sampleObject = map[position]; // This line won't work. "cannot implicitly convert type 'int[]' to 'int'" 

の代わりに:もちろん

sampleObject = map[position[1], position[2]] 

のみ2次元で作業する場合、それは問題の多くなるが、私は多くを持っていた想像できないでしょう寸法は10:

map[position[1], position[2], position[3], ..., position[10]] 

となります。ちょっと書いてください:

map[position] 
私は周りを探してきたが、私は発見された最良の「[ここに挿入プログラミング言語]で配列にアクセスする方法」または「[ここで入力する挿入配列]からの要素にアクセスする方法」またはのようなものでしたそれ。

答えて

5

はここArray.GetValue(int[])方法

+0

yup、that works:\t 'int [、] map = {{1,1}、{1,2}、{1,3}}; \t Console.WriteLine(map.GetValue(new [] {1,1})); // 2' –

0

を見てみましょうを考えています:

は、あなたの配列が20行と20列が含まれていると。

あなたは(、マップの最初から右へ、左、トップダウンの)マップで26の要素にアクセスしたい、としましょう、

だから、あなたの座標の関数のパラメータとして26を受け入れ、そして、

26/20 = 1 
26 % 20 - 1 = 5 

が、これは ちょうど思考、あなたに参考になるならば、それはあまりにも必ず値

ではありません戻って、map[1, 5]map[26]を変換します!

+0

これはうまくいきますが、Novakovが提案するArray.GetValue(int [])メソッドがまだまだ好きです。より直感的で使いやすく、特に多くのディメンションで作業する場合は使いやすいです。 – Nolonar

関連する問題