SharePoint uses a lot of field types that have different underlying schemas, delimiters and formats. I see a lot of people reverse engineer the field information and “hack” the data into the list using a string such as “1;#Title” for a lookup field. Well this isn't exactly best practice so I've put together a reference table below to assist in using the correct data types for populating or retrieving information from a SharePoint list.
LOOKUP FIELD
Field Class: SPFieldLookup
Field Value Class: SPFieldLookupValue
Field Value Class: SPFieldLookupValue
Populating Information:
or
Retrieving Information:
MULTIPLE LOOKUP FIELD
Field Class: SPFieldLookup
Field Value Class: SPFieldLookupValueCollection
Field Value Class: SPFieldLookupValueCollection
Populating Information:
Retrieving Information:
USER FIELD
Field Class: SPFieldUser
Field Value Class: SPFieldUserValue
Field Value Class: SPFieldUserValue
Populating Information:
Retrieving Information:
URL FIELD
Field Class: SPFieldUrl
Field Value Class: SPFieldUrlValue
Field Value Class: SPFieldUrlValue
Populating Information:
Retrieving Information:
MULTIPLE CHOICE FIELD
Field Class: SPFieldMultiChoice
Field Value Class: SPFieldMultiChoiceValue
Field Value Class: SPFieldMultiChoiceValue
Populating Information:
Retrieving Information: