首页 > 解决方案 > 我可以使用 AsQueryable 来提高此搜索的性能吗?

问题描述

我有以下在 AD 中搜索用户的方法:

private void SearchUsers(string firstName, string lastName)
{
    using (var context = new PrincipalContext(ContextType.Domain, request.DomainName))
    {
        var up = new UserPrincipal(context);
        var ps = new PrincipalSearcher(up);
        var userSearchResults = ps.FindAll().ToList();

        if (!string.IsNullOrEmpty(firstName))
            userSearchResults = userSearchResults.Where(
                x => x.GivenName?.ToUpper() == firstName.ToUpper()).ToList();

        if (!string.IsNullOrEmpty(lastName))
            userSearchResults = userSearchResults.Where(
                x => x.Surname?.ToUpper() == lastName.ToUpper()).ToList();                              
    }
}

与在此方法中进行搜索的方式相比,是否有更有效的搜索方式?我可以在这里使用 AsQueryable 吗?

标签: c#.net

解决方案


推荐阅读