我直接接受: 例如,我有一个数组
int[] integers = {1, 2, 2, 2, 4, 5, 2, 2, 2};
我喜欢的是将所有2的堆栈减少到只有一个2.我需要在最后得到这个:
{1, 2, 4, 5, 2};
我读到了.Distinct()方法和各种比较器,但该方法删除了所有相同的元素,我不想这样做。我仍然认为应该通过Linq或somethig来做某种方法。谢谢!
答案 0 :(得分:1)
使用LINQ,Luke!
var result = integers.Where((n, i) =>
i == 0 ? true : n != integers[i - 1]);
更简洁:
var result = integers.Where((n, i) =>
i == 0 || n != integers[i - 1]);
答案 1 :(得分:0)
我认为.net并没有这方面的功能。
所以你应该使用简单的foreach。
var result = List<int>();
foreach(var item in integers)
{
if(!result.Any())
{
result.Add(item);
}
else if(result[result.Count() - 1] != item)
{
result.Add(item);
}
}