我正在寻找一种方法来防止列表中的重复项目但仍保留顺序。例如
1, 2, 3, 4, 4, 4, 1, 1, 2, 3, 4, 4
应该成为
1, 2, 3, 4, 1, 2, 3, 4
我使用for
循环非常不雅地完成了它,检查下一项如下
public static List<T> RemoveSequencialRepeats<T>(List<T> input)
{
var result = new List<T>();
for (int index = 0; index < input.Count; index++)
{
if (index == input.Count - 1)
{
result.Add(input[index]);
}
else if (!input[index].Equals(input[index + 1]))
{
result.Add(input[index]);
}
}
return result;
}
有没有更优雅的方法来做到这一点,最好是使用 LINQ?