2016-07-13 5 views
0

부서별로 정렬 된 SearchResultCollection 개체를 가져 오려고 시도한 다음 이름 (알파벳순)으로 개체를 가져 오려고합니다. 두 개의 속성을로드하려고하지만 이것은 마지막 속성을 지정하고이를 기반으로 정렬합니다. 다시C에서 두 속성을 기반으로 directorySearcher 정렬 #

DirectoryEntry entry = new DirectoryEntry(ConfigurationManager.AppSettings["LDAP"]); 
DirectorySearcher search = new DirectorySearcher(entry) 
{ 
    SearchScope = SearchScope.Subtree, 
    Filter = "(&(objectClass=user)(physicalDeliveryOfficeName=Dartmouth))" 
}; 
search.PropertiesToLoad.Add("name"); 
search.PropertiesToLoad.Add("phone"); 
search.PropertiesToLoad.Add("email"); 
search.PropertiesToLoad.Add("department"); 

search.Sort.Direction = System.DirectoryServices.SortDirection.Ascending; 
search.Sort.PropertyName = "department"; 
search.Sort.PropertyName = "name"; 

SearchResultCollection result = search.FindAll(); 

하지만, 이름이 단지 종류 :

내 현재 코드는 다음과 같습니다. 부서별로 그룹화 된 모든 사용자를 이름순으로 정렬해야합니다.

답변

0

캐스트 SearchResultCollectionIEnumerable에 다음 종류의 사용자 정의 IComparer와 AD의 서버 측의 종류는 리소스를 많이 사용하기 때문에 당신이

var results = search.FindAll().Cast<SearchResult>() 
           .Sort(/*your IComparer<SearchResult>*/); 

정렬을 클라이언트 측에 결과를 개발하는. 또한

- 당신은 AD 2000이있는 경우는, 하나 개 이상의 속성 그냥 질문으로

+0

에 대한 검색을 지원하는 하나 개 이상의 속성에 AD 2008 supprt 검색을 수행하지 않는 이유는 무엇입니까? –

+0

@JonathanPrall - 오전 ... 정말 모르겠지만 AD 서버에서의 정렬을 피할 것입니다. 당신의 편이 좋을 것 같지 않은 컴퓨팅 능력을 더 잘 낭비하는 것이 좋습니다. –

+0

@JonathanPrall - BTW - 답변으로 문제가 해결 되었습니까? –