2014-08-28 211 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