c# - spalten - excel dropdown wenn dann bedingung



C#- Eine Liste in eine Dropdown-Liste verschieben (4)

Das wäre, weil List nicht von string (name) sondern von ints indiziert wird.

foreach (string name in nameList)
{
    ddl.Items.Add(new ListItem(name));
}

Wird das beheben.

https://src-bin.com

List<String> nameList = new List<String>();
DropDownList ddl = new DropDownList();

Die Liste wird hier aufgefüllt und dann sortiert:

nameList.Sort();

Jetzt muss ich es in die Dropdown-Liste einfügen, wo ich Probleme habe (mit foreach):

foreach (string name in nameList){
    ddl.Items.Add(new ListItem(nameList[name].ToString()));
}

Keine Arbeit - irgendwelche Vorschläge? Es gibt mir Kompilierungsfehler:

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'

Answer #1

Ersetzen Sie dies:

 ddl.Items.Add(new ListItem(nameList[name].ToString()));

mit diesem:

 ddl.Items.Add(new ListItem(name));

Fertig wie ein Abendessen.


Answer #2
    foreach (string name in nameList){
        ddl.Items.Add(new ListItem(nameList[name].ToString()));
    }

Ist dein Problem.

es sollte mehr wie aussehen

foreach (string name in nameList){
    ddl.Items.Add(new ListItem(name.ToString()));
}

Aber ich mag Marcus 'Vorschlag eigentlich ein bisschen besser.


Answer #3

Sie erhalten diesen Fehler, weil die AuflistungsnameListe eine List sodass Sie darauf mit einem Index und nicht mit einer Zeichenfolge zugreifen müssen (Sie verwenden den Namen).

Du kannst also schreiben:

foreach (string name in nameList){
    ddl.Items.Add(name);
}

BTW der beste Weg, dies zu tun ist:

ddl.DataSource = nameList;
ddl.DataBind();




drop-down-menu