public object FromUser(SP.FieldUser field, string users)
        {
            object value = null;

            if (!string.IsNullOrEmpty(users))
            {
                if (!field.AllowMultipleValues)
                {
                    value = SP.FieldUserValue.FromUser(users.Trim(';'));
                }
                else
                {
                    var names      = users.Trim(';').Split(';');
                    var fieldValue = new SP.FieldUserValue[names.Count()];
                    for (int i = 0; i < names.Length; i++)
                    {
                        fieldValue[i] = SP.FieldUserValue.FromUser(names[i]);
                    }
                    value = fieldValue;
                }
            }
            return(value);
        }
        public List <string> GetValues(SP.FieldUser field, SPListItem listItem, Dictionary <int, string> userCollection)
        {
            object value = listItem.Value(field.InternalName);

            if (value != null)
            {
                List <SP.FieldUserValue> valueList = null;
                if (field.AllowMultipleValues)
                {
                    valueList = ((SP.FieldUserValue[])value).ToList();
                }
                else
                {
                    valueList = new List <SP.FieldUserValue> {
                        (SP.FieldUserValue)value
                    };
                }
                return(valueList.ConvertAll(item => userCollection[item.LookupId]));
            }
            else
            {
                return(new List <string>());
            }
        }