Как бы я назначил только DisplayName и Name из PrincipalSearcher в список?

У меня есть следующий пример кода:

namespace DirectorySearcher
{
  class Program
  {
    static void Main(string[] args)
    {
        using (var context = new PrincipalContext(ContextType.Domain, "bobo.net"))
        {
            using (var searcher = new PrincipalSearcher(new UserPrincipal(context) { Enabled = true }))
            {
                List<Principal> results = new List<Principal>();
                results.AddRange(searcher.FindAll());
                //foreach (var result in searcher.FindAll())
                //{                        
                    //Console.WriteLine("displayName : " + result.DisplayName);
                    //Console.WriteLine("name : " + result.Name);
                    //Console.WriteLine();
                //}
            }
        }
        Console.WriteLine("Done");
        Console.ReadLine();
    }
  }
}

Как бы я назначить только результат.DisaplayName и result.Name в списке результатов?

вы можете настроить PrincipalSearcher так, чтобы он извлекал только эти два значения, чтобы начать с

как вы можете сделать с PowerShell, т.е.

 Get-ADUser -Properties DisplayName,Name

Спасибо

1 ответ

Решение
var list = searcher.FindAll().Select(s => new {name = s.Name, displayName = s.DisplayName});

Выше создается список анонимных объектов, который содержит имя и отображаемое имя. Вы могли бы создать класс Poco для хранения имени и отображаемого имени

Для ограничения свойств ответа посмотрите на этот вопрос

Другие вопросы по тегам