Single Responsibility Principle
This method is doing to much. It is compressing the string and writes it to the Console. You can avoid this by returning a string from this method and add another method for doing the output.
General
if you would increase
ibefore the innerwhileloop you will save one iteration of this loop. You don't need to check the character against itself.
If you change this you need to initializenwith1.The condition
if(n == 1)should be removed because it doesn't add any value. A better way would be to check forn > 1and if that is true add the count. Here a explaining comment about why this is used would be good.speaking about comments, comments should explain why soemthing is done in the way it is done. Let the code speak for itself about what is done by using descriptive names for variables, methods and classes.
A comment like
// add characters to the new list CompressedList.Add(character.ToString());
does not add value to the code but noise. We clearly see that the character is added to the list, so no need to comment on that.
Other than these points I completly agree with @helix answer.