2014-05-02 100 views
0

我正在代碼中設置鍵盤[5,5]二維數組的特定部分的值,例如第2行第3行中的「x」,以及它幾乎完成,但我不斷收到錯誤。 Let's與代碼的部分開始我有問題:二維陣列鍵盤設置值

int[,] data = new int[5, 5]; 

public void cargar() 
{ 
    string[] input = Console.ReadLine().Split('='); 
    string[] coordinates = input[0].Split(','); 
    int[] intCoordinates = coordinates.Select(s => int.Parse(s)).ToArray(); 
    data[intCoordinates[0]][intCoordinates[1]] = int.Parse(input[1]); 
} 

該消息是指到第10行,it's約「數據」(it's陣列的名稱):

「預計在[]。2內部有不正確的索引號」。

這是從西班牙文翻譯,所以我認爲這就是說。我怎麼能解決這個問題?

+1

你的代碼沒有顯示數據是如何實例化的。 –

+0

讓我添加它,編輯它的方式 – Gabbo2483

+3

試着在你的索引之間的第10行添加逗號:data [intCoordinates [0],intCoordinates [1]] = int.Parse(input [1]); –

回答

4

您正在使用多維數組([,]),但隨後嘗試像訪問它的數組數組([] [])那樣訪問數據 - 也稱爲鋸齒狀數組。

您需要像data[intCoordinates[0],intCoordinates[1]]那樣訪問它。

錯誤消息告訴你,當它期待其中兩個時,你只使用一個索引器。

參見this MSDN article on multidimensional arrays,this one on jagged arrays和這個StackOverflow question/answer

+0

耶!這是正確的,它只是固定的,謝謝XD。 – Gabbo2483

+0

沒問題。很高興幫助。 – Tim

+0

人們,代碼似乎工作得很好,但是當試圖鍵入任何值時,我得到IndexOutOfRangeException,即使它是1.爲什麼? – Gabbo2483