c# - manualmente - ¿Cómo agregar un elemento al principio de la Lista<T>?
dropdownlist mvc 5 razor (4)
Quiero agregar una opción "Seleccionar uno" a una lista desplegable vinculada a una List<T>
.
Una vez que solicito la List<T>
, ¿cómo agrego mi Item
inicial, que no forma parte del origen de datos, como el PRIMER elemento en esa List<T>
? Yo tengo:
// 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;
Actualización: una idea mejor, establezca la propiedad "AppendDataBoundItems" en true, luego declare declarativamente el "Elegir elemento". La operación de enlace de datos se agregará al elemento declarado estáticamente.
<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="Please choose..."></asp:ListItem>
</asp:DropDownList>
-Oisin
Use el método Insertar de la List<T>
:
Método de inserción de lista (Int32, T):
Inserts
un elemento en la lista en elspecified index
.
var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element
Use la List<T>.Insert
Si bien no es relevante para su ejemplo específico, si el rendimiento es importante, también considere usar LinkedList<T>
porque insertar un elemento al comienzo de una List<T>
requiere que todos los elementos se muevan. Consulte ¿ Cuándo debo usar una Lista frente a una Lista vinculada ?
Utilice el método de Insert :
ti.Insert(0, initialItem);