使用数组中的一个项目替换彼此相邻的两个项目

时间:2016-08-12 01:22:35

标签: c# arrays

有没有办法用数组中的一个项目替换彼此相邻的两个项目。

在这样的数组中:

int[] array = new int[]{ 1, 2, 2, 3, 3, 4, 5, 3, 2 };

删除彼此相邻的相同项目,结果如下:

{ 1, 2, 3, 4, 5, 3, 2 };

修改: 这就是我最终的结果:

int[] array = new int[]{ 1, 2, 2, 3, 3, 4, 5, 3, 2 };
int last = 0;
List<int> Fixed = new List<int>();
foreach(var i in array)
{
    if(last == 2 && i == 2 || 
       last == 3 && i == 3)
    {
    }
    else
    {
        Fixed.Add(i);
        last = i;
    }
}
return Fixed.ToArray() // Will return "{ 1, 2, 3, 4, 5, 3, 2 }"

但我必须输入我想要跳过的所有内容......

1 个答案:

答案 0 :(得分:1)

int[] array = new int[] { 1, 2, 2, 3, 3, 4, 5, 3, 2 };
//int[] output = array.Distinct().ToArray();Use this line if you want to remove all duplicate elements from array
int j = 0;
while (true)
{
    if (j + 1 >= array.Length)
    {
        break;
    }
    if (array[j] == array[j + 1])
    {
        List<int> tmp = new List<int>(array);
        tmp.RemoveAt(j);
        array = tmp.ToArray();
    }
    j++;
}