2

我得到了一个接口来实现,它有一个方法 SearchUser(string filter)。在比方法中,我需要搜索 LDAP 服务器并通过给定的过滤器获取用户。现在,我正在使用 foreach 循环进行操作。使用 LINQ 是否有更优雅的方法来做到这一点?

public List<Dictionary<string, object>> SearchUser2(string filter)
{
Dictionary<string, object> _SearchUser = null;
List<Dictionary<string, object>> _SearchList = new List<Dictionary<string, object>>();
DirectoryEntry domainEntry = new DirectoryEntry("LDAP://MyDomain");
DirectorySearcher searcher = new DirectorySearcher(domainEntry);
searcher.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(mail={0}*))", filter);
DirectoryEntry entry;
SearchResultCollection searchResult = searcher.FindAll();
foreach (SearchResult sr in searchResult)
{
    entry = sr.GetDirectoryEntry();

    if (entry != null)
    {
        _SearchUser.Add("Mail", entry.Properties["Mail"].Value);
        .....
        _SearchList.Add(_SearchUser);
    }
}
return _SearchList;
}
4

0 回答 0