I have below CSOM code to delete all list items from the list. But it is very slow. How can I make it faster.
public void DeleteListData()
{
string root = "mysite.com/";
using (ClientContext clientContext = new ClientContext(root))
{
Web web = clientContext.Web;
List list = web.Lists.GetByTitle("Search");
var query = new CamlQuery() { ViewXml = "<View><Query><Where><IsNotNull><FieldRef Name='First_x0020_Name' /></IsNotNull></Where></Query></View>" };
var items = list.GetItems(query);
clientContext.Load(items);
clientContext.ExecuteQuery();
var count = items.Count;
if (count > 0)
{
for (int i = 0; i < count; i++)
{
items[i].DeleteObject();
items[i].Update();
}
}
clientContext.ExecuteQuery();
}
}
Almost fine according to my knowledge, just trying to add batch logic to limit deleting items count each query.
I think below code is good sample.
andyhuey/deleteAllFromList.cs