我在通过CSOM C#从sharepoint组中检索用户时遇到问题。我目前通过CSOM检索所有用户,我的代码在
下面 public List<SPUser> GetGroupMembers(string groupName)
{
var appContext = _sharePointService.AppContext;
Group group = appContext.Web.SiteGroups.GetByName(groupName);
appContext.Load(group, grp => grp.Title, grp => grp.Users);
appContext.ExecuteQuery();
List<ClientResult<PrincipalInfo>> principalsResults = new List<ClientResult<PrincipalInfo>>();
foreach (var user in group.Users)
{
principalsResults.Add(Utility.ResolvePrincipal(appContext, appContext.Web, user.LoginName, PrincipalType.User, PrincipalSource.All, null, false));
}
appContext.ExecuteQuery();
List<SPUser> spUsers = new List<SPUser>();
foreach (var principalResult in principalsResults)
{
spUsers.Add(_spPrincipalFactory.Get(principalResult.Value));
}
return spUsers.OrderBy(u => u.Name).ToList();
}
但我只想要displayname以“Mark *”开头的用户。这可能吗?我怎么能这样做?
答案 0 :(得分:0)
使用linq过滤。
spUsers = spUsers.Where(itm => itm.Name.Trim().ToUpper().StartsWith("MARK")).ToList();
这将仅返回名称以“Mark”开头的用户。希望这会有所帮助。
答案 1 :(得分:0)
是。你可以这样做。
if (getLightness(color) < 0.5f ){
// This color is too dark!
}
试试并告诉我。