Jean Paul's Blog

There are 2 types of People in the World, One who Likes SharePoint and..

  • Microsoft MVP

  • MindCracker MVP

  • CodeProject MVP

  • eBook on SharePoint 2010

  • eBook on Design Patterns

  • eBook on Windows Azure

  • NLayers Framework @ CodePlex

  • MSDN Forums

  • .Net vs. Java

    Due to Public Demand
  • Advertisements

SharePoint 2010 – Create a List in C# based on another List

Posted by Paul on December 10, 2012

We can create copy of a List from one SharePoint site to another using List Template Exporting & PowerShell. In this article we can see the Server Object Model way of achieving the same.

Classes Involved

The SPList class is the core type involved in our functionality.

Activities Involved

Following are the activities involved in our application.

Step 1: Create a List in SharePoint site based on the Tasks template and name it as Tasks 1.


Step 2: Create a console application

Add reference to the Microsoft.SharePoint assembly


Set the Build > Platform Taget to Any CPU


Step 3: Add the following code

In the Program.cs add the following code.

class Program


static void Main(string[] args)


using (SPSite site = new SPSite("http://localhost"))


using (SPWeb web = site.OpenWeb())


SPList sourceList = web.Lists["Tasks 1"];

Guid destGuid = web.Lists.Add("Tasks 2", sourceList.Description, sourceList.BaseTemplate);

SPList destList = web.Lists[destGuid];

destList.OnQuickLaunch = sourceList.OnQuickLaunch;






The above code performs the following:

1. Create the SPSite & SPWeb objects

2. Access the Tasks 1 list

3. Create a new Tasks 2 list using the Template of first list

4. Set the Quick Launch property to true

5. Update the new List

6. Disposes the SPSite & SPWeb objects

Step 4: View the new List created

Now you can go back to the SharePoint site and see the new list was created.



The SPList server object model contains the BaseTemplate instance property as the List Template. We are creating the new list using this property.

web.Lists.Add("Tasks 2", sourceList.Description, sourceList.BaseTemplate);



In this article we have explored the Server Object Model of creating List based on another List.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s