0

J'ai créé une application pour supprimer Duplicate SPListItem. La liste contient des milliers d'enregistrements en double. Lors de la suppression de l'élément (par exemple, après environ 1000 suppressions d'enregistrements). L'application termine le processus de suppression et affiche le message complété avec succès. J'ajoute mon extrait de code pour supprimer les éléments.La méthode SplistItem.Delete() s'arrête pendant la suppression

spFormIDCollection = spHistoryList.GetItems(query); 
          if (spFormIDCollection != null && spFormIDCollection.Count > 0) 
           for (int i = 0; i < spFormIDCollection.Count - 1; i++) 
           { 
            SPListItem listItem = spFormIDCollection[i]; 
            if (listItem != null) 
             if (Convert.ToString(listItem[Common.NotificationDate]).Equals(Convert.ToString(spFormIDCollection[i + 1][Common.NotificationDate]))) 
              listItem.Delete(); 

           } 

Je ne sais pas ce qui se passait mal avec mon code. Pouvez-vous s'il vous plaît expliquer, s'il y a un code incorrect. Merci d'avance ..

+0

pouvez-vous développer davantage? les éléments sont-ils supprimés? je pense que ce n'est pas clair dans ta question –

Répondre

3

Vous devriez changer votre boucle for à

for (int i = spFormIDCollection.Count - 1; i > -1; i--) 

Lors de la suppression des éléments de la collection.Count diminue et votre boucle se terminera au début.

Questions connexes