Um alle Elemente in einer Liste im SharePoint zu löschen kann folgender Code verwendet werden:
SPListItemCollection listItemColl = list.Items;
foreach (SPListItem item in listItemColl)
{
list.GetItemById(item.ID).Delete();
}
Nachtrag
Da im Objekt SPList mit dem Befehl .Items immer alle Elemente zurückgegben werden, kann diese Methode bei grossen Listen (Elemente > 2000) zu Exceptions vom Typ OutOfMemory führen. Deshalb empfiehlt es sich stets mit einem Query Elemente aus Listen abzufragen. Ebenso sollten Sie die Liste in mehreren Schritte und mittels Batch löschen.
SPQuery query = new SPQuery();
query.RowLimit = 100;
do
{
// getItems
SPListItemCollection items = web.Lists[setList].GetItems(query);
// Batch erstellen
StringBuilder batchString = new StringBuilder();
batchString.Append("<?xml version="1.0" encoding="UTF-8"?><Batch>");
foreach (SPListItem item in items)
{
batchString.Append("<Method>");
batchString.Append("<SetList Scope="Request">" + Convert.ToString(item.ParentList.ID) + "</SetList>");
batchString.Append("<SetVar Name="ID">" + Convert.ToString(item.ID) + "</SetVar>");
batchString.Append("<SetVar Name="Cmd">Delete</SetVar>");
batchString.Append("</Method>");
}
//close the batch section
batchString.Append("</Batch>");
//preform the batch
web.ProcessBatchData(batchString.ToString());
query.ListItemCollectionPosition = items.ListItemCollectionPosition;
} while (query.ListItemCollectionPosition != null);