0

重複する SPListItem を削除するためのアプリケーションを 1 つ作成しました。リストには何千もの重複レコードがあります。アイテムの削除中 (たとえば、約 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 に答える