0

Я создал одно приложение для удаления Duplicate SPListItem. Список содержит тысячи дубликатов записей. При удалении элемента (скажем, примерно после удаления 1000 записей). Приложение завершает процесс удаления и показывает успешно завершенное сообщение. Я добавляю фрагмент кода для удаления элементов.Метод SplistItem.Delete() останавливается при удалении

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(); 

           } 

Я не знаю, что пошло не так с моим кодом. Не могли бы вы объяснить, если есть неправильный код. Заранее спасибо ..

+0

Вы продолжите расширение? удаляются элементы? я думаю, что в вашем вопросе не ясно –

ответ

3

Вы должны изменить ваши для цикла в

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

При удалении элементов collection.Count уменьшается и ваш цикл завершится рано.