2014-10-01 3 views
-3

배열과 간단한 writeline을 사용하여 일부 코드를 실행하려했지만 "System.IndexOutOfRangeExecption"오류가 발생했으며 줄이 깁니다.System.IndexOutOfRangeExecption 오류 - C#

코드 (단순) : 나는 C# .NET을 잘 모릅니다 *

static void Main(string[] args) 
    { 

     // מטרת התכנית היא למצוא את שמו של התלמיד על פי מקום הישיבה שלו, וההפך 
     // נשתמש במערך בשם Places. 

     string[,] places = new string [3,3]; 
     places[0, 0] = "Me & Dori"; 
     places[0, 1] = "Me & Dori"; 
     places[0, 2] = "Me & Dori"; 
     places[0, 3] = "Me & Dori"; 
     places[1, 0] = "Me & Dori"; 
     places[1, 1] = "Me & Dori"; 
     places[1, 2] = "Me & Dori"; 
     places[1, 3] = "Me & Dori"; 
     places[2, 0] = "Me & Dori"; 
     places[2, 1] = "Me & Dori"; 
     places[2, 2] = "Me & Dori"; 
     places[2, 3] = "Me & Dori"; 
     places[3, 0] = "Me & Dori"; 
     places[3, 1] = "Me & Dori"; 
     places[3, 2] = "Me & Dori"; 
     places[3, 3] = "Me & Dori"; 

     Console.WriteLine(places[1, 3]); 
    } 

잘 ... 그래서 그 무엇인가를 추측 여전히 배우고 내가 작성하는 것을 잊지.

답변

1

을이 같은 C#에서 배열을 선언하는 경우 :

string[,] places = new string [3,3]; 

당신이 배열의 9 개 요소가를 인덱싱은 0,0 마지막에서 시작 2,2

입니다 그리고 당신은 2,3에있는 요소를 해결하려고 할 때 그것은 Exception

places[2, 3] = "Me & Dori"; 
2

배열의 크기는 3x3이며, 배열은 0부터 시작하므로 배열은 2,2로 끝납니다.

string[,] places = new string [4,4]; 

아니면 상한을 설정하는 코드를 제거해야합니다 :

당신은 당신의 코드가 작동하는 4x4의 당신의 배열을 설정해야합니다.

+0

@Omer가 발생합니다 : 도움이 더 필요하십니까? 그렇지 않다면 신입 회원이므로 가장 좋아하는 답변을 수락하는 것을 잊지 마십시오. –

0

배열의 최대 색인은 places[2, 2]입니다. 당신은

places[0, 3] = "Me & Dori"; 
places[1, 3] = "Me & Dori"; 
places[2, 3] = "Me & Dori"; 
places[3, 0] = "Me & Dori"; 
places[3, 1] = "Me & Dori"; 
places[3, 2] = "Me & Dori"; 
places[3, 3] = "Me & Dori"; 
1
new String[3,3] 

3 치수의 양을 나타냅니다 사용하기 위해 string[,] places = new string[4,4];이 필요합니다. 배열은 0부터 시작합니다. 그래서 당신은 3 차원을 만듭니다. 0, 1 및 2. 값을 4 차원으로 설정하려고합니다.

places[3, 0] = "Me & Dori"; 
places[3, 1] = "Me & Dori"; 
places[3, 2] = "Me & Dori"; 
places[3, 3] = "Me & Dori"; 

네 번째 차원이 없기 때문에 이것은 작동하지 않습니다. 따라서이 줄을 삭제하거나 다음을 사용하십시오 :

string[,] places = new string [4,4]; 
+1

용어를 명확히하기 위해 혼동을 피하기 위해 "크기"를 "크기"로 바꿀 수 있습니다. 기술적으로 나는 배열에 * 2 차원 *을 가지고 있다고 기술 할 것이다. * 각각의 크기는 * 3 *이다. – David

0

3x3 배열을 선언하고 있지만 4x4 데이터를 할당하려고합니다. 이에 예를 변화 문제를 해결하려면 :

string[,] places = new string [4,4];