C# 列表如何在两个值之间插入新值

本文关键字:两个 之间 新值 插入 int 列表 | 更新日期: 2023-09-27 18:30:58

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

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 个循环来移动值的位置。

C# 列表<int>如何在两个值之间插入新值

List<int> initializers = new List <int>();
initializers.Add(1);
initializers.Add(3);
int index = initializers.IndexOf(3);
initializers.Insert(index, 2);

给你 1,2,3。

使用 List<T>.Insert

initializers.Insert(index, value);

对于那些正在寻找更复杂的东西(在 2 个值之间插入多个项目,或者不知道如何在列表中找到项目index)的人来说,答案如下:

正如其他人已经提到的,在 2 个值之间插入一个项目非常容易:

myList.Insert(index, newItem);

由于InsertRange方法,插入多个项目也很容易:

myList.InsertRange(index, newItems);

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

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

您可以使用List.Insert()而不是List.Add()在特定位置插入项目。

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

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