如何将项目添加到 List的开头?

发布于 2024-07-10 09:06:12 字数 577 浏览 8 评论 0原文

我想将“选择一个”选项添加到绑定到 List 的下拉列表中。

一旦我查询 List,如何添加我的初始 Item(不是数据源的一部分)作为该 ListList中的第一个元素? 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;

I want to add a "Select One" option to a drop down list bound to a List<T>.

Once I query for the List<T>, how do I add my initial Item, not part of the data source, as the FIRST element in that List<T> ? I have:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

小姐丶请自重 2024-07-17 09:06:12

使用 插入 方法:

ti.Insert(0, initialItem);

Use the Insert method:

ti.Insert(0, initialItem);
就像说晚安 2024-07-17 09:06:12

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

编辑:

如果您想显式改变给定列表:

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

// mutating ti
ti = ti.Prepend(0).ToList();

但此时只需使用 插入(0, 0)

Since .NET 4.7.1, you can use the side-effect free Prepend() and Append(). The output is going to be an 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));

Edit:

If you want to explicitly mutate your given list:

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

// mutating ti
ti = ti.Prepend(0).ToList();

but at that point just use Insert(0, 0)

遗弃M 2024-07-17 09:06:12

更新:更好的主意,将“AppendDataBoundItems”属性设置为 true,然后以声明方式声明“Choose item”。 数据绑定操作将添加到静态声明的项目中。

<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

Update: a better idea, set the "AppendDataBoundItems" property to true, then declare the "Choose item" declaratively. The databinding operation will add to the statically declared item.

<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

灼疼热情 2024-07-17 09:06:12

使用ListInsert方法:

List.Insert 方法 (Int32, T):插入一个元素到 List 的指定索引处。

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

Use Insert method of List<T>:

List.Insert Method (Int32, T): Inserts an element into the List at the specified index.

var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element
最冷一天 2024-07-17 09:06:12

使用 List.Insert

虽然与您的具体示例无关,但如果性能很重要,还可以考虑使用 LinkedList 因为将项目插入到 < 的开头code>List要求将所有项目移过去。 请参阅何时应使用列表与链接列表

Use List<T>.Insert

While not relevant to your specific example, if performance is important also consider using LinkedList<T> because inserting an item to the start of a List<T> requires all items to be moved over. See When should I use a List vs a LinkedList.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文