c#list <int>如何在两个值之间插入新值</int>

时间:2012-04-11 17:23:37

标签: c# asp.net list

所以我有一个列表,我需要不断添加新值,但是当我需要增加它并将其插入两个值之间时。

List<int> initializers = new List <int>();

initializers.Add(1);
initializers.Add(3);

因此初始值设定项将具有1,3值。

然后,我会处理一组新的数字。初始值设定项需要具有值。

1,5,3,7

如果我处理另一组数字,它应该成为

1,9,5,13,​​3,11,7,15

我知道如何正确生成插入的新值,我只需要一些帮助就可以在初始化器的现有值之间插入它而无需添加2或3个循环来移动值&#39;位置。

5 个答案:

答案 0 :(得分:50)

List<int> initializers = new List <int>();

initializers.Add(1);
initializers.Add(3);

int index = initializers.IndexOf(3);
initializers.Insert(index, 2);

给你1,2,3。

答案 1 :(得分:16)

使用List<T>.Insert

initializers.Insert(index, value);

答案 2 :(得分:4)

您只需使用List.Insert()代替List.Add()即可在特定位置插入商品。

答案 3 :(得分:0)

另一种方法是,如果有一种计算可行的方法对元素进行排序,那么:

list.Insert(num);
// ...
list.Insert(otherNum);

// Sorting function. Let's sort by absolute value
list.Sort((x, y) => return Math.Abs(x) - Math.Abs(y));

答案 4 :(得分:0)

对于那些正在寻找更复杂事物的人(在2个值之间插入一个以上的项目,或者不知道如何在列表中找到项目的index ) ,这是答案:

在两个值之间插入一项非常简单,就像其他人已经提到的那样:

myList.Insert(index, newItem);

通过InsertRange方法,插入多个项目也很容易:

myList.InsertRange(index, newItems);

最后使用以下代码,您可以在列表中找到项目的索引:

var index = myList.FindIndex(x => x.Whatever == whatever); // e.g x.Id == id