0

我得到一个用户所属的安全组列表作为对象数组。我使用 DirectoryEntry 来获取活动目录属性,其中一个属性是“memberOf”(de.properties[“memberOf”].value)。返回值是一个“对象数组”。这个对象数组的每个元素看起来像:

"CN=SITE_MAINTENANCE,OU=CMS,OU=SD,OU=ESM,OU=Engineering Systems,DC=usa,DC=abc,DC=domain,DC=com"

我可以遍历元素,将每个元素转换为“字符串”并以这种方式搜索。我只是认为可能有一种更简单的方法不需要循环。我需要能够找到其中带有 OU=CMS 的那个。

谢谢。

4

4 回答 4

2

遍历数组,然后使用 indexOf 或 Regexp 搜索字符串“OU=CMS”。如果它存在于字符串中,那么您“找到了其中包含 OU=CMS 的那个”。

您可以执行任何操作,例如将项目放入新列表或任何您想要的。

于 2013-04-04T03:42:16.503 回答
0
list.Where(a=>a.ToString().Contains("OU=CMS")).ToList();
于 2013-04-04T03:45:37.687 回答
0

您可以使用如下

string listString="CN=SITE_MAINTENANCE,OU=CMS,OU=SD,OU=ESM,"+
                     "OU=Engineering Systems,DC=usa,DC=abc,DC=domain,DC=com"

使用 linq:

listString.Split(',').Contains("OU=CMS")

无 linq:

Array.IndexOf(listString.Split(','), "OU=CMS") >= 0
于 2013-04-04T04:15:10.947 回答
0

您可以通过 foreach 循环搜索所需的值

于 2013-04-04T04:40:08.153 回答