Microsoft Interactive Extensions (Ix) has a DistinctUntilChanged method that does what you want. This library comes with many useful features, but it is another whole library that you might not want to worry about.
Usage will look like this:
str = new string(str .ToEnumerable() .DistinctUntilChanged() .ToArray());
If you want to remove only plus signs, you can do this:
str = new string(str .ToEnumerable() .Select((c, i) => new { c, i = (c != '+' ? i : -1) }) .DistinctUntilChanged() .Select(t => tc) .ToArray());
source share