에 바인딩 된 드롭 다운 목록에 “하나 선택”옵션을 추가하고 싶습니다 List<T>
.
을 쿼리 하면 데이터 소스의 일부가 아닌 List<T>
초기 Item
요소를 FIRST 요소로 List<T>
어떻게 추가합니까? 나는 가지고있다:
// 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;
답변
삽입 방법을 사용하십시오 .
ti.Insert(0, initialItem);
답변
업데이트 : 더 나은 아이디어는 “AppendDataBoundItems”속성을 true로 설정 한 다음 “항목 선택”을 선언적으로 선언하십시오. 데이터 바인딩 작업은 정적으로 선언 된 항목에 추가됩니다.
<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="Please choose..."></asp:ListItem>
</asp:DropDownList>
오이 신
답변
.NET 4.7.1부터 부작용없이 Prepend()
및을 사용할 수 있습니다 Append()
. 출력은 IEnumerable이 될 것입니다.
// 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 ));
답변
사용하다 List<T>.Insert
특정 예제와 관련이 없지만 성능이 중요한 경우 LinkedList<T>
항목을 시작 부분에 삽입 List<T>
하려면 모든 항목을 이동해야 하므로 사용을 고려 하십시오 . List와 LinkedList는 언제 사용해야합니까?를 참조하십시오 .
답변
다음의 삽입 방법을 사용 하십시오List<T>
.
List.Insert Method (Int32, T) :
Inserts
의 List에 요소specified index
.
var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element