2017-08-03 57 views
-3

我一直坚持与IndexOutOfRangeException问题的一天中的一半,无法找到问题。在曼哈顿CodinGame中的IndexOutOfRangeException

for (int k = 0; k < 27; k++) 
     { 
      for (int i = 0; i < H; i++) 
      { 

       Alphabet[i,0,k] = "0"; 
      } 

     } 

我用字母表[i,0,k] =“0”进行调试。实际上,即使用Alphabet [0,0,0]抛出异常,但我已经初始化了这个数组。 H = 5和码似乎工作首次

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

class Solution 
{ 
    static void Main(string[] args) 
    { 
     int L = int.Parse(Console.ReadLine()); 
     int H = int.Parse(Console.ReadLine()); 
     string T = Console.ReadLine(); 
     Console.Error.WriteLine(T); 
     Console.Error.WriteLine(T[0]); 
     int stringLenght = T.Length; 
     string [,] Row = new string [H,L*27]; 
     string [,,] Alphabet = new string [H,0,27]; 
     string [,] Word = new string [H,0]; 
     for (int i = 0; i < H; i++) 
     { 
      string initRow = Console.ReadLine(); 
      for (int j = 0; j < (L*27); j++) 
      { 
       Row[i,j] = Convert.ToString(initRow[j]); 

      } 

     } 

     for (int k = 0; k < 27; k++) 
     { 
      for (int i = 0; i < H; i++) 
      { 

       Console.Error.WriteLine("k=" + k); 
        Console.Error.WriteLine("i=" + i); 
       Alphabet[i,0,k] = "0"; 
      } 

     } 


     for (int i =0; i < stringLenght; i++) 
     { 
      switch (T[i]) 
      { 
       case 'E': 
        for (int j=0; j < H; j++) 
        { 
        Word[j,0] = Alphabet[j,0,3]; 
        } 
        break; 
       default: break;  
     }  

     }  



     for (int i=0; i<H; i++) 
     { 
     Console.WriteLine(Word[i,0]); 
     } 
    } 
} 

     } 


     for (int i =0; i < stringLenght; i++) 
     { 
      switch (T[i]) 
      { 
       case 'E': 
        for (int j=0; j < H; j++) 
        { 
        Word[j,0] = Alphabet[j,0,3]; 
        } 
        break; 
       default: break;  
     }  

     }  




     for (int i=0; i<H; i++) 
     { 
     Console.WriteLine(Word[i,0]); 
    } } 
} 

回答

0

您的阵列的第二维长度为0:

String [,,] Alphabet = new string [H,0,27]; 

不可能有任何元件那里读取。