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

당신은 항목을 삭제하면 collection.Count이 감소하고 루프가 조기에 완료됩니다에 대한 루프

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

에 변경해야합니다.

관련 문제