<T> Listesinin başına nasıl öğe eklenir?


417

A ile ilişkili açılır listeye "Birini Seçin" seçeneği eklemek istiyorum List<T>.

Bir kez sorgu , veri kaynağının bir parçası değil, List<T>benim ilk nasıl ItemİLK öğesi olarak ekleyebilirim List<T>? Sahibim:

// 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;

Yanıtlar:


719

Ekle yöntemini kullanın :

ti.Insert(0, initialItem);

8
@BrianF, Evet haklısın. Doktor:This method is an O(n) operation, where n is Count.
23W

4
@ 23W MSDN'ye bağlanacaksanız büyük olasılıkla İngilizce sayfasına bağlanmalısınız.
mbomb007

Listenin sonuna eklemek mümkün müdür?
Gary Henshall

3
@GaryHenshall evet, Addyöntemi kullan, sonuna ekler.
Martin Asenov

2
.NET 4.7.1 sürümünden bu yana Append()ve öğelerini kullanabilirsiniz Prepend(). Bu yanıtı kontrol
codidact.com geçmeden aloisdg

24

Güncelleme: daha iyi bir fikir, "AppendDataBoundItems" özelliğini true olarak ayarlayın, sonra "Öğe seç" bildirimi bildirin. Veri bağlama işlemi, statik olarak bildirilen öğeye eklenecektir.

<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


2
Bu oldukça havalı. OP ASP.NET belirtmedi ama bilmek güzel bir numara.
Matt Hamilton

5

.NET 4.7.1'den beri, yan etkiyi ücretsiz Prepend()ve kullanabilirsiniz Append(). Çıktı IEnumerable olacak.

// Creating an array of numbers
var ti = new List<int> { 1, 2, 3 };

// Prepend and Append any value of the same type
var results = ti.Prepend(0).Append(4);

// output is 0, 1, 2, 3, 4
Console.WriteLine(string.Join(", ", results ));


3

Ekle yöntemini kullanın List<T>:

List.Insert Yöntemi (Int32, T): ' Insertsdeki Listeye bir öğe specified index.

var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.