2013-04-04 164 views
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的人員。

謝謝。

+0

你的問題不清楚。你發佈的字符串是如何與對象數組相關的?它是一個如上所示的字符串列表嗎? – 2013-04-04 03:38:11

+0

DirectoryEntry返回的「memberOf」是「object []」。但是當我檢查它時,數組中的每個條目(對象)看起來都像我發佈的字符串。因爲它是object [],所以我不能做任何字符串函數。正如我所說,我可以遍歷每個元素,將每個元素都作爲字符串進行搜索,並以這種方式進行搜索,但認爲這有點更智能。 – NoBullMan 2013-04-11 21:43:39

+0

好吧,如果它返回一個'object []',那麼你可以做的事情就不多了。我猜這個API不是很直觀。 – 2013-04-11 22:11:42

回答

2

循環訪問數組,然後使用indexOf或Regexp搜索字符串「OU = CMS」。如果它存在於字符串中,那麼你「找到了其中包含OU = CMS的那個。」

你可以做任何事情,如投擲物品到一個新的列表或任何你想要的。

0
list.Where(a=>a.ToString().Contains("OU=CMS")).ToList(); 
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") 

W/O LINQ:

Array.IndexOf(listString.Split(','), "OU=CMS") >= 0 
+0

我所擁有的是一個對象數組,數組中的每個元素都是我作爲示例包含的字符串。我從DirectoryEntry(de.properties [「memberOf」])得到這個結果,它返回一個對象數組。 – NoBullMan 2013-04-04 04:39:27

+0

你能編輯你的問題與這些細節。意思是什麼在你的數組對象等 – 2013-04-04 04:44:51

+0

我編輯的問題 – NoBullMan 2013-04-04 13:15:22

0

你可以搜索通過foreach循環

所需的值
+0

更詳細一點,將有助於OP – Anthon 2013-04-04 05:00:12