2013-02-07 3 views
0

저는 C#을 처음 접해서 배열을 보았습니다.C# 다차원 배열 반복

을 감안할 때 :

int[][] myJagArray = new int[5][]; 

이유는 무엇입니까 다음 인쇄합니다 유형 J의 (선택 System.Int32 []), 그리고 각 J의 내용?

foreach (int[] j in myJagArray) 
{ 
    Console.WriteLine("j : {0}",j); 
} 

답변

5

Array.ToString() 있기 때문에이 유형의 이름을 반환, 배열의 내용을 반환하지 않으며, Console.WriteLine 암시 적 매개 변수로 보내 객체 각각에 ToString()를 호출합니다.

이 배열은 다차원 배열의 일부라는 사실에 아무 관련이 없다, 그것은 단순히 CLR 개발자가 선택한 방법입니다 (또는 오히려,하지를 선택) System.ArrayToString()를 구현합니다.

1

이 경우 j가 배열이고 Object ToString 구현을 사용하며 해당 비헤이비어가 해당 유형을 인쇄하므로 ToString() 메서드의 출력을 인쇄합니다. 당신이 할 수 있습니다 여기에서

:

foreach (int[] j in myJagArray) 
{ 
    StringBuilder sb = new StringBuilder("j : "); 

    foreach (int k in j) 
    { 
     sb.append("[").append(k).append("]"); 
    } 

    Console.WriteLine(sb.Tostring()); 
} 
1

당신은 int의 배열을 인쇄하고 있습니다.

foreach (int[] j in myJagArray) 
{ 
    foreach (int i in j) 
    { 
     Console.WriteLine("i : {0}",i); 
    } 
} 
0

당신은

다음과 같이해야한다 : 다음 시도 할 수 있습니다

Console.WriteLine("j : {0}",j[0]); 

가 전체 내용을 인쇄하려면 :

하여 배열에서 첫 번째 값을 인쇄하려면 다음 시도

for(int i=0;i<5;i++) 
    for(int j=0;j<5;j++) 
     print(myjagarray[i][j].tostring()); 
0

Console.WriteLine을 사용하여 값을 출력하면 실제로 ToString()을 그 값 및 Array.ToString()은 값이 아니라 유형을 반환합니다. j의 값을 출력하려면 두 번째 루프를 실행해야합니다.

foreach (int[] j in myJagArray) 
{ 
    Console.Write("j: "); 
    foreach (int i in j) 
    { 
     Console.Write("{0} ",i); 
    }  
    Console.Write("\n"); 
}