У меня есть следующий код:Сортировка результатов запроса DirectorySearcher по DateTime
// Declare new DirectoryEntry and DirectorySearcher
DirectoryEntry domainRoot = new DirectoryEntry("LDAP://rootDSE");
string rootOfDomain = domainRoot.Properties["rootDomainNamingContext"].Value.ToString();
DirectorySearcher dsSearch = new DirectorySearcher(rootOfDomain);
// Set the properties of the DirectorySearcher
dsSearch.Filter = "(objectClass=Computer)";
dsSearch.PropertiesToLoad.Add("whenCreated");
dsSearch.PropertiesToLoad.Add("description");
dsSearch.PropertiesToLoad.Add("operatingSystem");
dsSearch.PropertiesToLoad.Add("name");
// Execute the search
SearchResultCollection computersFound = dsSearch.FindAll();
Я хочу, чтобы отсортировать результаты по whenCreated
собственности в порядке убывания, так что новейшие компьютерные объекты находятся на вершине.
Я не могу просто сделать:
SortOption sortedResults = new SortOption("whenCreated", SortDirection.Descending);
dsSearch.Sort = sortedResults;
, потому что сервер возвращает ошибку (http://social.technet.microsoft.com/Forums/en-US/winserverDS/thread/183a8f2c-0cf7-4081 -9110-4cf41b91dcbf /)
Что такое лучший способ отсортировать это?
В общем, я бы придерживаться решения, как показано выше, как на стороне сервера видов в AD являются ресурсоемкими и отказ склонным с большими наборами результатов. –
Спасибо за ответ, я думаю, что это сработает. Посмотрю, что я могу сделать. – Dbloom
В результате я создал класс, который содержит все атрибуты AD для меня, а затем создал SortedList '. Это позволило мне сохранить элементы списка по порядку по дате автоматически, а изменение порядка было таким же простым, как: «IEnumerable > revList = oldCompsList.Reverse(); ' –
Dbloom