- 在
convertedMatrix[temp] = matrix[i,j]
;
中获得异常 - 确切错误:
indexoutofrangeException:数组索引超出范围。 System.Text.StringBuilder.set_chars(INT32索引,char值)(at/system.text/stringbuilder.cs:line编号)
这是代码(在C#):
public const int size = 4; public System.Text.StringBuilder convertedMatrix = new System.Text.StringBuilder(size * size); public char[,] matrix = new char[,]{'i','s','e','m','r','v','u','n','t','o','d','a'}; public void Generate() { for(int i = 0; i < size; i++) { convertedMatrix.Append(" "); } int temp = 0; for(int i = 0; i < size; i++) { for(int j = 0; j < size; j++) { convertedMatrix[temp] = matrix[i,j]; temp += 1; } } }
convertedMatrix
具有i
字符。在线您会遇到错误,temp
可以达到(i-1)*(J-1),它比i。
您可能想增加convertedMatrix
中字符的数量。
对不起,家伙们调试了它。正如@yper所说,ConvertedMatrix的字符较少。因此错误是在线:
for(int i = 0; i < size; i++) {
wordsLength[i] = 0;
convertedMatrix.Append(" ");
}
应该是:
for(int i = 0; i < size * size; i++) {
wordsLength[i] = 0;
convertedMatrix.Append(" ");
}
谢谢大家!