it-swarm.com.de

Wie füge ich ein Element an den Anfang der Liste <T>?

Ich möchte einer Dropdown-Liste, die an einen List<T> Gebunden ist, die Option "Eins auswählen" hinzufügen.

Wie füge ich nach der Abfrage von List<T> Mein erstes Item hinzu, das nicht Teil der Datenquelle ist, als erstes Element in diesem List<T>? Ich habe:

// 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;
365
Ash Machine

Verwenden Sie die Insert Methode:

ti.Insert(0, initialItem);
639
Matt Hamilton

Update: Eine bessere Idee: Setzen Sie die Eigenschaft "AppendDataBoundItems" auf "true" und deklarieren Sie das Element "Choose" deklarativ. Die Datenbindungsoperation wird zu dem statisch deklarierten Element hinzugefügt.

<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true">
    <asp:ListItem Value="0" Text="Please choose..."></asp:ListItem>
</asp:DropDownList>

http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

-Oisin

23
x0n

Benutze List<T>.Insert

Auch wenn dies für Ihr spezielles Beispiel nicht relevant ist, sollten Sie in Betracht ziehen, LinkedList<T> Zu verwenden, wenn die Leistung wichtig ist, da beim Einfügen eines Elements an den Anfang eines List<T> Alle Elemente verschoben werden müssen. Siehe Wann sollte ich eine Liste gegen eine LinkedList verwenden .

2
sonny

Verwenden Sie Einfügen Methode von List<T>:

List.Insert-Methode (Int32, T): Inserts ein Element in die Liste am specified index.

var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element
1
Sina Lotfi