In my previous post i was published how to add the content types to a list in share point. It is also possible to delete the content types in the share point lists. The following code deletes the required content types in the list.
//delete content types from a list
private static void DeleteContentType(SPWeb currentWeb)
{
string listTitle = string.Empty;
SPList currentList;
List< SPContentType > contentTypes = new List< SPContentType >();
contentTypes.Add(currentWeb.ContentTypes["Message"]);
Console.WriteLine("Enter the list title to delete the content types");
listTitle = Console.ReadLine();
if (!string.IsNullOrEmpty(listTitle))
{
currentList = currentWeb.Lists[listTitle];
if (currentList != null)
{
for (int i = 0; i < contentTypes.Count; i++)
{
if (currentList.ContentTypes[contentTypes[i].Name] != null)
{
currentList.ContentTypes.Delete(currentList.ContentTypes[contentTypes[i].Name].Id);
currentList.Update();
Console.WriteLine("content type Deleted");
}
else
{
Console.WriteLine("content type" + (currentList.ContentTypes[contentTypes[i].Name]) + "not exists");
}
}
}
else
{
Console.WriteLine("list not exists in the current web");
}
}
else
{
Console.WriteLine("list title not be empty or null");
}
}
As shown in the code i took a user defined list as SPContentType and i added the content types to the list which i want to delete, then loop the entire list items, if the content type exists in the list, then the content type will be deleted. If not exists do nothing.