2014-08-28 259 views
0

我正在學習c#。我正在嘗試從AD獲取displayName。以下是以下代碼。C#索引超出範圍

if (resEnt.Properties["displayname"].Count > 0) 
{ 
    nameList = new List<string>(); 
    name = resEnt.Properties["displayname"][0].ToString(); 
    nameList.Add(name.ToString()); 
    int count = nameList.Count; 
    Console.WriteLine("name: " + resEnt.Properties["displayname"][0].ToString()); 

    comboBox1.Items.Add(name.ToString()); 
} 

我得到的錯誤是

指數超出範圍。必須是非負的並且小於 的大小。

就行

name = resEnt.Properties["displayname"][0].ToString(); 
+0

'resEnt.Properties [「displayname」] [0]'它真的在上面的行,你有初始化? – Sayse 2014-08-28 06:56:00

+0

哪條線是你的錯誤?什麼是'resEnt.Properties [「displayname」]'? – 2014-08-28 06:56:51

+0

name = resEnt.Properties [「displayname」] [0] .ToString();索引超出範圍。必須是非負數且小於集合的大小。 – user3200722 2014-08-28 06:58:27

回答

0

也許resEnt.Properties [ 「顯示名稱」] [0]是零? 無論如何,resEnt是什麼?它是DirectoryEntry類型嗎?如果是這樣,你應該嘗試resEnt.Properties [「displayname」]。Value.ToString()

+0

resEnt是DirectorySearcher。 – user3200722 2014-08-28 07:20:00

+0

如果resEnt是DirectorySearcher,那麼resEnt.Properties是一個語法錯誤。 (.Net 4,也許我落後了?) – eyalfein 2014-08-28 07:35:50