- Obtenir une exception à la ligne
convertedMatrix[temp] = matrix[i,j]
; - Erreur exacte:
IndexOutOfRangeException: l'index de tableau est hors limites. System.Text.StringBuilder.set_Chars (index Int32, valeur Char) (à /System.Text/StringBuilder.cs:line nombre
Voici le code (en 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; } } }
Réponses:
2 pour la réponse № 1le convertedMatrix
a i
personnages. Dans la ligne, vous obtenez l'erreur, temp
peut aller jusqu'à (i-1) * (j-1), ce qui est supérieur à i.
Vous voulez probablement augmenter le nombre de caractères dans convertedMatrix
.
0 pour la réponse № 2
Désolé les gars l'ont débogué. Comme @yper l'a dit, convertMatrix avait moins de caractères. Donc l'erreur était à la ligne:
for(int i = 0; i < size; i++) {
wordsLength[i] = 0;
convertedMatrix.Append(" ");
}
Au lieu de cela, il devrait être:
for(int i = 0; i < size * size; i++) {
wordsLength[i] = 0;
convertedMatrix.Append(" ");
}
Merci les gars!