List <T>의 시작 부분에 항목을 추가하는 방법은 무엇입니까?


417

에 바인딩 된 드롭 다운 목록에 "하나 선택"옵션을 추가하고 싶습니다 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;

답변:


719

삽입 방법을 사용하십시오 .

ti.Insert(0, initialItem);

8
23W

4
@ 23W MSDN에 연결하려면 영어 페이지에 연결해야합니다.
mbomb007

목록의 끝에 삽입 할 수 있습니까?
Gary Henshall

3
@GaryHenshall 예, Add방법을 사용 하면 끝에 삽입됩니다.
Martin Asenov

2
.NET 4.7.1 때문에, 당신은 사용할 수 있습니다 Append()Prepend(). 이 답변을 확인하십시오
aloisdg codidact.com으로 이동

24

업데이트 : 더 나은 아이디어는 "AppendDataBoundItems"속성을 true로 설정 한 다음 "항목 선택"을 선언적으로 선언하십시오. 데이터 바인딩 작업은 정적으로 선언 된 항목에 추가됩니다.

<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

오이 신


2
꽤 괜찮은데. OP는 ASP.NET을 지정하지 않았지만 알기 좋은 요령입니다.
매트 해밀턴

5

.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 ));


3

다음의 삽입 방법을 사용 하십시오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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.