如何通过用户displayname开头的CSOM从sharepoint组中检索用户列表?

时间:2017-03-15 08:27:03

标签: sharepoint sharepoint-2013 csom

我在通过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 *”开头的用户。这可能吗?我怎么能这样做?

2 个答案:

答案 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!
}

试试并告诉我。