gpt4 book ai didi

c# - 在事件目录底层对象上使用 linq

转载 作者:太空宇宙 更新时间:2023-11-03 20:51:12 24 4
gpt4 key购买 nike

目前我的代码是:

using (var context = new PrincipalContext(ContextType.Domain, adDomain))
{
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
foreach (Principal result in searcher.FindAll())
{
DirectoryEntry entry = result.GetUnderlyingObject() as DirectoryEntry;
if (entry.Properties["Company"].Value?.ToString() == "My Company")
{
// do some stuff
}
}
}
}

我只是想知道是否可以执行 LINQ 语句而不是 if 语句来只获取我感兴趣的条目。

像这样:

foreach (var entry in searcher.FindAll()
.Where(x => x.GetUnderlyingObject<DirectoryEntries>()
.Properties["Company"].Value?.ToString() == "MY Company"))
{
// do some stuff
}

最佳答案

应该是可以的。您可以先使用 Select() 将对象转换为 DirectoryEntry。这样的事情应该有效:

var entry = searcher.FindAll()
.Select(x => (DirectoryEntry)x.GetUnderlyingObject())
.Where(x => x.Properties["Company"].Value?.ToString() == "My Company")
.FirstOrDefault(); // or .ToList() depending on your requirements

if (entry != null)
{
// do some stuff
}

关于c# - 在事件目录底层对象上使用 linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com