質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

5170閲覧

C# 2重配列の使い方

okatatsu

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2018/11/22 05:10

前提・実現したいこと

C#でプログラミングの勉強をしています。
たいしたエラー内容ではないとは思うのですが、
エラー部分がよく理解できませんのでご教示お願いしたいです。

発生している問題・エラーメッセージ

Main.cs(24,22): error CS0022: Wrong number of indexes 1' inside [], expected 2'
Main.cs(25,26): error CS0022: Wrong number of indexes 1' inside [], expected 2'

上記のエラーは、//1行目の計算 の中のfor分に該当します。

該当のソースコード

C#
// 表のデータ [0] = 高さ [1] = 幅
string[] fieldSize = System.Console.ReadLine().Trim().Split(' ');
string[,] fieldData = new string[Int32.Parse(fieldSize[0]), Int32.Parse(fieldSize[1])];

// 表の値 [0] = 左から1つ目のデータ [1] = 左から2つ目のデータ
string[] fieldValue1 = System.Console.ReadLine().Trim().Split(' ');
string[] fieldValue2 = System.Console.ReadLine().Trim().Split(' ');

// 各行の差
int diff1 = Int32.Parse(fieldValue1[1]) -Int32.Parse(fieldValue1[0]);
int diff2 = Int32.Parse(fieldValue2[1])- Int32.Parse(fieldValue2[0]);

// 1行目の計算
int c = Int32.Parse(fieldValue1[0]);
for (int i = 0; i < fieldData.GetLength(1); i++)
{
fieldData[0][i] = c - diff1;
c = fieldData[0][i];
}

試したこと

2重配列:var[][]をvar[]みたいに使うと上記のエラーが表示される。という文面は見たのですが、なぜこのコードでもなるのかがわかりません。

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

エラーメッセージが「indexが1つではなく2つ必要です。」となってるので、
fieldData[0][i]ではなくfieldData[0, i]とすべきと言ってる気がします。

投稿2018/11/22 05:17

shun_kuwa

総合スコア187

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okatatsu

2018/11/22 06:58

ご回答ありがとうございました。勉強になります。
guest

0

二次元配列の宣言

C#

1fieldData[,]

を行なっているのに対して利用するときにジャグ配列

C#

1fieldData[0][i] 2```で指定しているので要素の指定が足りないからエラーが吐かれているのだと思いますよ。 3shun_kuwaさんが回答しているように利用するタイミングで 4```C# 5fieldData[0,i] 6```とすれば良いと思います。

投稿2018/11/22 06:55

編集2018/11/22 07:08
Loky

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okatatsu

2018/11/22 06:58

ご回答ありがとうございました。勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問