J'ai une boucle assez simple, que nous avons tous utilisée des milliers de fois, mais je reçois une erreur bizarre. Comme je doute qu'il y ait un défaut en C# .net noyau, je cherchais l'aide avec mon erreur:C# .net core 2.0, la boucle est en train de compter
public Int2DBoard GetNonMatchingSquaresThisBoardOnly(Int2DBoard other)
{
// create a tempBoard:
Int2DBoard tempBoard = new Int2DBoard("Different");
// create a match bool to hold our result:
bool match = false;
// match this board items against other board
for (int i = 0; i < board.Count; i++)
{
for (int j = 0; j < other.board.Count; i++)
{
if (other.board[j] == board[i])
{
match = true;
break;
}
}
if (!match)
{
tempBoard.board.Add(board[i]);
}
}
return tempBoard;
}
Quand je lance, je reçois un hors d'erreur de limites, de vérifier ce que j'obtenir les informations suivantes:
i = 2; board.Count = 2;
Comment est-ce possible? La fonction indique clairement < board.Count. Je suis sûr de manquer quelque chose d'évident, mais je ne peux tout simplement pas le voir. Toute aide serait appréciée.
Voici une capture d'écran du débogueur montrant les valeurs:
Merci, je savais que ça allait être quelque chose que je ne pouvais pas voir pour le code .. – SoulRider