Search code examples
c#sharepointsplist

Custom Fields Only From Sharepoint List


Is it possible to loop through field collection of a sharepoint list and retrieve only our custom fields and not the sharepoint built-in fields.

using (SPSite site = new SPSite("http://localhost/"))
{
   using (SPWeb web = site.OpenWeb())
   {
       SPList list = web.Lists["My List"];
       foreach (SPField field in list.Fields)
       {
           //We also get sharepoint built-in column here. And we don't want that, just our
           //custom created fields.
       }
   }
}

Any help would be appreciated.

Thanks


Solution

  • You have two options:

    1. Check if the field is a built-in field: SPBuiltInFieldId.Contains(field.Id)
    2. Check on the SPField.SourceId (from MSDN):

    Gets either the namespace that defines a built-in field or, if it a custom field, the GUID that identifies the list or Web site where it was created.