最初に知っておくべきことは、ユーザー/グループ フィールドを持つリストがある場合、そのタイプを認識している必要があるということです。項目値内にユーザーまたはグループが 1 つある場合、フィールド タイプは SPFieldUserValue です。ただし、フィールドに複数のユーザー/グループ選択がある場合、フィールド タイプは SPFieldUserValueCollection です。
あなたのフィールドでは単一のユーザー/グループの選択が許可されており、次のオブジェクトが既にあると仮定します。
SPSite site;
SPWeb web;
SPListItem item;
ここで、ユーザー/グループのフィールド値を確認し、種類に関係なくユーザーのリストを取得します (フィールドの名前は"Users"です)。
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、
ペドロ・ホセ・バティスタ