SPFieldLookupValueCollection class
SharePoint 2013
Contains the values for an SPFieldLookup object that can contain multiple values.
System.Object
System.Collections.Generic.List<SPFieldLookupValue>
Microsoft.SharePoint.SPFieldLookupValueCollection
System.Collections.Generic.List<SPFieldLookupValue>
Microsoft.SharePoint.SPFieldLookupValueCollection
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
The following example shows how to read the value of a multi-value lookup field. The example is a console application that iterates over the items on the Task list. The code looks at the Predecessors field in each item and prints the title of the item, the number of predecessors, and the title and task number of each predecessor.
using System; using Microsoft.SharePoint; namespace ConsoleApp { class Program { static void Main(string[] args) { using (SPSite site = new SPSite("http://localhost")) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists.TryGetList("Tasks"); if (list != null) { foreach (SPListItem item in list.Items) { // Get the predecessors. string rawvalue = item[SPBuiltInFieldId.Predecessors].ToString(); // Print information about the task. SPFieldLookupValueCollection values = new SPFieldLookupValueCollection(rawvalue); Console.WriteLine("\nTask {0}: {1}", item.ID, item.Title); Console.WriteLine("\tPredecessors: {0}", values.Count); // Print the predecessors. foreach (SPFieldLookupValue value in values) Console.WriteLine("\t{0} (Task {1})", value.LookupValue, value.LookupId); } } } } Console.Write("\nPress ENTER to continue...."); Console.Read(); } } }
The following example shows how to write the value of a multi-value lookup field. The example is a console application that looks for an Issues list in the site collection's root website. If an Issue list is found, the application adds two new items to the list and sets the value of the Related Items field in each item.
using System; using Microsoft.SharePoint; namespace ConsoleApp { class Program { static void Main(string[] args) { using (SPSite site = new SPSite("http://localhost")) { using (SPWeb web = site.RootWeb) { SPList list = null; foreach (SPList webList in web.Lists) { if (webList.BaseType == SPBaseType.Issue) { list = webList; break; } } if (list != null) { SPListItemCollection items = list.Items; SPFieldLookupValueCollection relatedItems = new SPFieldLookupValueCollection(); SPListItem firstItem = items.Add(); firstItem[SPBuiltInFieldId.Title] = "The first issue"; firstItem.Update(); SPFieldLookupValue firstLookupValue = new SPFieldLookupValue(firstItem.ID, firstItem.Title); relatedItems.Add(firstLookupValue); SPListItem secondItem = items.Add(); secondItem[SPBuiltInFieldId.Title] = "The second issue"; secondItem[SPBuiltInFieldId.RelatedIssues] = relatedItems.ToString(); secondItem.Update(); relatedItems.Remove(firstLookupValue); relatedItems.Add(new SPFieldLookupValue(secondItem.ID, secondItem.Title)); firstItem[SPBuiltInFieldId.RelatedIssues] = relatedItems.ToString(); firstItem.Update(); } } } } } }