我會把它直接: 比如我有一個數組減少重複的堆棧中的數組只有一個在C#中
int[] integers = {1, 2, 2, 2, 4, 5, 2, 2, 2};
和所有我喜歡的是減少2所有的堆到只有一個2.我需要在最後得到這個:
{1, 2, 4, 5, 2};
我看了一下.Distinct()方法和每一種comparers的,但是這種方法刪除所有相同的元素,我不希望這個。我仍然認爲有一些方法可以通過Linq或somethig來完成。謝謝!
我會把它直接: 比如我有一個數組減少重複的堆棧中的數組只有一個在C#中
int[] integers = {1, 2, 2, 2, 4, 5, 2, 2, 2};
和所有我喜歡的是減少2所有的堆到只有一個2.我需要在最後得到這個:
{1, 2, 4, 5, 2};
我看了一下.Distinct()方法和每一種comparers的,但是這種方法刪除所有相同的元素,我不希望這個。我仍然認爲有一些方法可以通過Linq或somethig來完成。謝謝!
使用LINQ,盧克!
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]);
正是我需要的。謝謝! –
我覺得.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);
}
}
檢查了這一點http://stackoverflow.com/questions/3350641/array-remove-duplicate-elements –
如果我理解你,你想要的是什麼,和Unix的''uniq''實用程序(http://linux.die.net/man/1/uniq)一樣,除了它作用於數組的條目而不是文件。 –
你使用什麼語言?在許多語言中似乎都有「獨特」的功能,但是它們消除了所有的重複,而不僅僅是連續的重複。下面是在Ruby中解決這個問題的方法:例如:http://stackoverflow.com/questions/4576652/how-do-you-merge-consecutive-repeating-elements-in-an-array –