Je veux ajouter une option "Select One" à une liste déroulante liée à un List<T>
.
Une fois que j'ai demandé le List<T>
, comment puis-je ajouter mon initiale Item
, ne faisant pas partie de la source de données, en tant que PREMIER élément List<T>
? J'ai:
// populate ti from data
List<MyTypeItem> ti = MyTypeItem.GetTypeItems();
//create initial entry
MyTypeItem initialItem = new MyTypeItem();
initialItem.TypeItem = "Select One";
initialItem.TypeItemID = 0;
ti.Add(initialItem) <!-- want this at the TOP!
// then
DropDownList1.DataSource = ti;
c#
drop-down-menu
generic-list
Machine à cendres
la source
la source
This method is an O(n) operation, where n is Count.
Add
méthode, il insère à la fin.Append()
etPrepend()
. Vérifiez cette réponseMise à jour: une meilleure idée, définissez la propriété «AppendDataBoundItems» sur true, puis déclarez «Choisir l'élément» de manière déclarative. L'opération de liaison de données s'ajoutera à l'élément déclaré statiquement.
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx
-Oisine
la source
Depuis .NET 4.7.1, vous pouvez utiliser les effets secondaires free
Prepend()
etAppend()
. La sortie va être un IEnumerable.la source
Utilisation
List<T>.Insert
Bien que cela ne soit pas pertinent pour votre exemple spécifique, si les performances sont importantes, envisagez également d'utiliser
LinkedList<T>
car l'insertion d'un élément au début d'unList<T>
nécessite le déplacement de tous les éléments. Voir Quand dois-je utiliser une liste par rapport à une LinkedList .la source
Utilisez la méthode d' insertion de
List<T>
:la source