This documentation is archived and is not being maintained.

SPListItem Class

The SPListItem class represents an item, or row, in a list.



Public Methods

The following table shows the public methods of the SPListItem class and a brief description of each.

Name Description
Update Updates the database with changes made to the list item.

Public Properties

The following table shows the public properties of the SPListItem class, the data type of each property, and a brief description of each.

Name Data Type Description
Attachments Microsoft.SharePoint.SPAttachmentCollection Gets the collection of attachments associated with the list item.
Fields Microsoft.SharePoint.SPFieldCollection Gets the collection of all fields in the parent list of the item.
File Microsoft.SharePoint.SPFile Gets the file represented by the list item from the document library.
ID Int32 Gets an integer that identifies the list item.
Item(Int32) Object Gets or sets the value contained by the field at the specified index in the item.
Item(String) Object Gets or sets a field value in the item based on the specified field display name.
ListItems Microsoft.SharePoint.SPListItemCollection Gets the parent collection of list item objects to which the item belongs.
ModerationInformation Microsoft.SharePoint.SPModerationInformation Gets Content Approval information for the item, including the status and comment.
ParentList Microsoft.SharePoint.SPList Gets the parent list of the list item.
Xml String Gets the data contained in the list item in XMLDATA format.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread safe.


Use the Items property or one of the GetItems methods of the SPList class, or the Items property or GetItemsInFolder method of the SPDocumentLibrary class, to return an SPListItemCollection object that represents the collection of items for a list. Use an indexer to return a single item from the collection. For example, if the collection is assigned to a variable named myItems, use myItems[index] in C#, or myItems(index) in Visual Basic .NET, where index is either the index number of the item in the collection or the internal name or the display name of a list field. For an indexer based on a name, Microsoft Windows SharePoint Services first looks for the field by internal name and then by display name.

To assign values to a field in a list item using an indexer, the values must be represented in a format appropriate for each built-in field type. The following table shows how the data types used in Windows SharePoint Services field types map to .NET Framework types.

Name Format
Attachments System.Boolean
Boolean System.Boolean
Calculated N/A
Choice System.String
Computed N/A
Counter System.Int32
CrossProjectLink System.Boolean
Currency System.Double
DateTime System.DateTime
GridChoice System.String
Guid System.Guid
Integer System.Int32
Lookup System.String
MaxItems System.Int32
ModStat System.Int32
MultiChoice System.String
Note System.String
Number System.Double
Recurrence System.Boolean
Text System.String
Threading System.String
URL System.String, System.String
User System.String

Unlike all other members in the object model, the indexer for a DateTime field returns values in the local time on the site. In a query, set the DatesInUtc property of the SPQuery object to true for the indexer to return values in UTC. To convert values from local time to UTC, instead use the LocalTimeToUTC method, as follows: mySite.RegionalSettings.TimeZone.LocalTimeToUtc(date). For more information about the conversion and format of date and time values in Windows SharePoint Services, see Converting Date and Time Values.

Using the SPListItem class to modify an event that is linked to a Meeting Workspace site will not update the associated Meeting Workspace site and is not supported.

The type returned for the value of a Calculated field depends on the output type of the calculated column.

A Lookup field contains a string of the form ID;#ID, where ID is the integer ID of the item in the list.

The value of a MultiChoice field is represented as a string containing all the selected choices separated by ;#.

The URL field uniquely consists of two strings separated by a comma and space. One string contains the URL path and the other contains the description used as hyperlinked text.

You can set the value for a User field with an SPUser object, as shown in the following example, which updates an item in the Assigned To field of a tasks list:

[Visual Basic .NET]

Dim site As SPWeb = SPControl.GetContextSite(Context).AllWebs("Site_Name")
Dim list As SPList = site.Lists("Tasks")
Dim listItem As SPListItem = list.Items(5)

listItem("Assigned To") = site.Users("User_Name")
listItem.Update() '

SPWeb site = SPControl.GetContextSite(Context).AllWebs["Site_Name"];
SPList list = site.Lists["Tasks"];
SPListItem listItem = list.Items[5];

listItem["Assigned To"] = site.Users["User_Name"];

A User field contains a string of the form ID;#User_Display_Name, where ID is the member ID of the associated user. The following example parses the value of an Assigned To field to return an SPUser object.

[Visual Basic .NET]

Dim userValue As String = listItem("Assigned To")
Dim index As Integer = userValue.IndexOf(";")
Dim id As Integer = Int32.Parse(userValue.Substring(0, index))
Dim user As SPUser = site.SiteUsers.GetByID(id)

string userValue = listItem["Assigned To"];
int index = userValue.IndexOf(';');
int id = Int32.Parse(userValue.Substring(0, index));
SPUser user = site.SiteUsers.GetByID(id);

At list item creation time, you can set the Author, Editor, Created, and Modified fields like other fields of an SPListItem object. The code must be running with site administrator rights in order to function. Set the Author and Editor fields using the numerical ID of the user, which you can obtain through the object model using members of SPUser and related classes. See below for an example that sets these fields.


The following code example uses an indexer to verify the value of a particular field in the specified list. If the value does not equal "None", indexers for two other fields are used to display values from particular fields.