2012-07-24 2 views
1

다음은 C# 코드입니다.GetLength() 메서드가 배열에서 예상대로 작동하지 않습니다.

tab.Length = 6 
tab.Rank = 2 
Length of dim 0 of tab : 2 
Length of dim 1 of tab : 3 

왜 :

tab.Length = 6 
tab.Rank = 2 
Length of dim 0 of tab : 0 
Length of dim 1 of tab : 1 

내가 다음 텍스트를 예상 :

그것은 다음과 같은 텍스트를 출력? 감사.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace TableTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      int[,] tab = new int[2, 3]; 

      for (int i = 0; i < 2; i++) 
      { 
       for (int j = 0; j < 3; j++) 
       { 
        tab[i, j] = 2 * i + j; 
       } 
      } 
      Console.WriteLine("tab.Length = {0}", tab.Length); 
      Console.WriteLine("tab.Rank = {0}", tab.Rank); 
      for (int i = 0; i < tab.Rank; i++) 
      { 
       Console.WriteLine("Length of dim {0} of tab : {0} ", i, tab.GetLength(i)); 
      } 

     } 
    } 
} 

답변

11

추측이 : 마지막 형식 문자열이 잘못되었습니다 : 당신은 두 번 {0}를 사용하여, 그렇게하고

Console.WriteLine("Length of dim {0} of tab: {0} ", i, tab.GetLength(i)); 

당신이 모두 자리에서 i의 값을 출력하고 있습니다.

사용이 대신 :

Console.WriteLine("Length of dim {0} of tab: {1} ", i, tab.GetLength(i)); 
+1

@EdS 글쎄, 그것은 코드 샘플에서 오타가 될 수 있었고 실제로 테스트하지 않았습니다. 그래서 "학식이없는 추측". – millimoose

1

귀하의 형식 문자열이 잘못되었습니다.

"Length of dim {0} of tab : {0} ""Length of dim {0} of tab : {1} "으로 바꿉니다.

코드는 사실은 내가 퍼팅되었다되지 tab.GetLenght (I)

1

당신은 단순히 Console.WriteLine에 전달 된 두 번째 매개 변수에 액세스해야합니까? 시도해보십시오.

Console.WriteLine("Length of dim {0} of tab : {1} ", i, tab.GetLength(i)); 
+0

감사합니다. 그것은 작동합니다. – mistergreen

관련 문제