This code sample illustrates how to add an existing SharePoint site column (SPField) to a SharePoint list (SPList).
public static string AddFieldToList(SPWeb web, string listName,
string fieldName, SPFieldType fieldType,
bool fieldRequired)
{ LogHelper.LogDebug(logger, "Begin AddFieldToList");
string internalListName = string.Empty;
ValidationHelper.VerifyStringArgument(listName, "listName");
SPList list = web.Lists[listName];
if (list != null)
{ internalListName = AddFieldToList(web, list, fieldName, fieldType, fieldRequired);
}
LogHelper.LogDebug(logger, "End AddFieldToList");
return internalListName;
}
public static string AddFieldToList(SPWeb web, SPList list, string fieldName,
SPFieldType fieldType, bool fieldRequired)
{ LogHelper.LogDebug(logger, "Begin AddFieldToList");
ValidationHelper.VerifyObjectArgument(web, "web");
ValidationHelper.VerifyObjectArgument(list, "list");
ValidationHelper.VerifyStringArgument(fieldName, "fieldName");
string internalFieldName;
try
{ SPFieldCollection lstFields = list.Fields;
if (lstFields.ContainsField(fieldName))
{ throw new SafException("Field Name:" + fieldName + " already exist in the list:" +
list.Title);
}
internalFieldName = lstFields.Add(fieldName, fieldType, fieldRequired);
}
catch (Exception ex)
{ LogHelper.LogError(logger, "SPListHelper", "AddFieldToList", ex);
throw;
}
finally
{ LogHelper.LogDebug(logger, "End AddFieldToList");
}
return internalFieldName;
}