Первое, что вам нужно знать, это то, что когда у вас есть список с полем «Пользователь / группа», вы должны знать о его типе. Когда у вас есть один пользователь или группа в пределах значения элемента, тип поля SPFieldUserValue. Тем не менее, если поле имеет несколько пользователей / выбор группы, тип поля SPFieldUserValueCollection.
Я предполагаю, что ваше поле допускает выбор одного пользователя / группы, и у вас уже есть следующие объекты:
SPSite site;
SPWeb web;
SPListItem item;
Теперь мы проверим значение поля для пользователя / группы и извлечем список пользователей, независимо от того, какого он типа (имя поля «Пользователи» ).
SPFieldUserValue usersField = new SPFieldUserValue(mainWeb, item["Users"].ToString());
bool isUser = SPUtility.IsLoginValid(site, usersField.User.LoginName);
List<SPUser> users = new List<SPUser>();
if (isUser)
{
// add a single user to the list
users.Add(usersField.User);
}
else
{
SPGroup group = web.Groups.GetByID(usersField.LookupId);
foreach (SPUser user in group.Users)
{
// add all the group users to the list
users.Add(user.User);
}
}
Надеюсь, это поможет вам.
Tks,
Педро Хосе Батиста