When you get an SPListItemCollection from a SPList.GetItems(SPQuery) request, and the items have SPFieldUser or SPFieldLookup fields, what is the sexy way to get typed values, not the item["Field"].ToString().Split('#')[1] way, please?

1 Answer 1

new SPFieldLookupValue(item["FieldName"] as String).LookupValue

you probably want to check if item["FieldName"] is not null or empty before doing this.

SPFieldUserValue works similarly, but you need to pass in an SPWeb into the constructor, which you can retrieve from your SPListItem using SPListItem.ParentList.ParentWeb

  • or .ToString() and yes check for null always Feb 6, 2010 at 10:29
  • Cool, at least this way we are protected from cases when hash/pound-sign(#) appears in the value. Thanks. Feb 7, 2010 at 20:19
  • 12
    cool - just googled for this question and stumbled upon my own answer :) Aug 12, 2010 at 11:43
  • 3
    I wrote an article about the whole get/set Lookup/User field method, which may be useful: tsstsst.com/easily-accessing-lookup-and-user-fields
    – Stu Pegg
    Jul 26, 2012 at 11:38
  • 1
    for CSOM, use FieldLookupValue from Microsoft.SharePoint.Client.
    – YHTAN
    Jul 25, 2017 at 7:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.