| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 |  
int i = 0;
while(i < vertexesList.Count)
{
   int index = vertexesList.IndexOf(vertexesList[i]);
 
   if (index < i)
   {
      vertexesList.RemoveAt(i);
      for(int j = 0; j < indexList.Count; ++j)
      {
          if (indexList[j] == i)
          {
             indexList[j] = index;
          }
          else
          {
             if (indexList[j] > i)
             {
                // On a supprimé l'élément à l'index j de la liste.
                // Tous les éléments après se retrouvent donc à 
                // l'index précédent. Il faut donc mettre à jour
                // la liste des index.
                indexList[j]--;
             }
          }
      }
      // on incrémente pas i, pour la simple et bonne raison qu'on vient
      // de supprimer l'élément qui était à cet index. L'élément i+1 se retrouve
      // donc à l'index i
   } 
   else
   {
      // Rien à faire. On passe à l'index suivant
      ++i;
   }
} | 
Partager