如何增加数组的索引

spa*_*a93 4 c# arrays

我有一个数组例如

string[] data = {"1","2","3","5","6","7","4",....goes on)
Run Code Online (Sandbox Code Playgroud)

假设我想做以下操作; 如果数组数据的第3个元素5然后将所有内容向上移动索引一个点,那么基本上数组将变为

{"1","2","3","","5","6","7","4"...}
Run Code Online (Sandbox Code Playgroud)

一个空白区域将占据5位.

if (data[3] == "5") 
{ 
   // move index forward one spot
}
Run Code Online (Sandbox Code Playgroud)

Cha*_*ger 7

虽然这可以使用数组来完成,但可能更容易使用某些更高级别的构造List<T>,然后在需要时将其转换回数组.如果您根本不需要阵列,则可以单独使用List<T>.

string[] data = {"1","2","3","5","6","7","4"};

var list = new List<string>(data);

for (var i = 0; i < list.Count; i++)
{
    if (list[i] == "5")
    {
        list.Insert(i, "");
        i++;
    }
}

data = list.ToArray();
Run Code Online (Sandbox Code Playgroud)

这是一个有效的演示:https://dotnetfiddle.net/lHzgFH

这是最简单的实现,虽然它不是最有效的 - 请参阅替代实施的一些其他答案,这可能是大数据集的更好选择.