C# 获取分页的DirectorySearcher的搜索结果总数
我正在使用C# 获取分页的DirectorySearcher的搜索结果总数,c#,active-directory,C#,Active Directory,我正在使用DirectorySearch搜索Active Directory中的对象。我将VirtualListView属性设置为仅返回几个值: using System; using System.DirectoryServices; namespace Testbed { internal class Testbed { private static void Main() { DoSearch();
DirectorySearch
搜索Active Directory中的对象。我将VirtualListView
属性设置为仅返回几个值:
using System;
using System.DirectoryServices;
namespace Testbed
{
internal class Testbed
{
private static void Main()
{
DoSearch();
Console.ReadKey();
}
private static void DoSearch()
{
var entry = new DirectoryEntry("LDAP://server/DC=mydomain,DC=com", @"USERNAME", "PASSWORD");
var searcher = new DirectorySearcher(entry)
{
PageSize = 0,
SearchScope = SearchScope.Subtree,
Filter = "(Description=J_*)",
Sort = new SortOption("Description", SortDirection.Ascending),
VirtualListView = new DirectoryVirtualListView(0, 9, 1)
};
SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results)
{
Console.WriteLine(result.Properties["Description"][0]);
}
Console.WriteLine("Found: " + results.Count);
}
}
}
是否有一种方法可以在不使用相应的
页面大小进行显式DirectorySearch
-“call”(例如500)的情况下获取查询广告中的对象总数 在DirectoryVirtualListView
类中有一个ApproximateTotal
属性。您可以使用它,但请记住,您应该在代码中的foreach
块之后访问它。
只需更改这一行:
Console.WriteLine("Found: " + results.Count);
对于这一点:
Console.WriteLine("Found: " + searcher.VirtualListView.ApproximateTotal);
全部完成 你想要的是计数还是实际的对象?我只想要总数。