C# - 将列表转储到下拉列表

scr*_*rot 15 c# list drop-down-menu

List<String> nameList = new List<String>();
DropDownList ddl = new DropDownList();
Run Code Online (Sandbox Code Playgroud)

列表在此处填充,然后排序:

nameList.Sort();
Run Code Online (Sandbox Code Playgroud)

现在我需要将它放入下拉列表中,这是我遇到问题的地方(使用foreach):

foreach (string name in nameList){
    ddl.Items.Add(new ListItem(nameList[name].ToString()));
}
Run Code Online (Sandbox Code Playgroud)

没有工作 - 任何建议?它给了我编译错误:

Error - The best overloaded method match for 'System.Collections.Generic.List<string>.this[int]' has some invalid arguments 

Error - Argument '1': cannot convert from 'string' to 'int'
Run Code Online (Sandbox Code Playgroud)

Mar*_*ing 41

为什么不直接将DDL绑定到List上

DropDownList ddl = new DropDownList();
ddl.DataSource = nameList;
ddl.DataBind();
Run Code Online (Sandbox Code Playgroud)


Mik*_*ton 21

替换这个:

 ddl.Items.Add(new ListItem(nameList[name].ToString()));
Run Code Online (Sandbox Code Playgroud)

有了这个:

 ddl.Items.Add(new ListItem(name));
Run Code Online (Sandbox Code Playgroud)

就像晚餐一样.