Most of the answers on this thread won't work if you use AppendLine
like below:
var builder = new StringBuilder();
builder.AppendLine("One,");
builder.Length--; // Won't work
Console.Write(builder.ToString());
builder = new StringBuilder();
builder.AppendLine("One,");
builder.Length += -1; // Won't work
Console.Write(builder.ToString());
builder = new StringBuilder();
builder.AppendLine("One,");
Console.Write(builder.TrimEnd(',')); // Won't work
WHY??? @(&**(&@!!
The issue is simple but took me a while to figure it out: Because there are 2 more invisible characters at the end CR
and LF
(Carriage Return and Line Feed). Therefore, you need to take away 3 last characters:
var builder = new StringBuilder();
builder.AppendLine("One,");
builder.Length -= 3; // This will work
Console.WriteLine(builder.ToString());
In Conclusion
Use Length--
or Length -= 1
if the last method you called was Append
. Use Length =- 3
if you the last method you called AppendLine
.