0

我创建了一个用于删除重复 SPListItem 的应用程序。该列表有数千条重复记录。删除项目时(例如,大约在删除 1000 条记录后)。应用程序完成删除过程并显示成功完成的消息。我正在附加我的代码片段以删除项目。

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

                                }

我不知道我的代码出了什么问题。能否请您解释一下,如果有任何不正确的代码。提前致谢..

4

1 回答 1

3

你应该改变你的for循环

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

删除项目时,collection.Count 减少,您的循环将提前完成。

于 2013-04-17T09:43:32.203 回答