C#:
Concatenating strings
How to:
Concatenating strings in C# can be done in several ways:
Using +
operator:
string hello = "Hello";
string world = "World";
string concatenated = hello + ", " + world + "!";
Console.WriteLine(concatenated); // Output: Hello, World!
Using String.Concat()
method:
string concatenated = String.Concat("Hello", ", ", "World", "!");
Console.WriteLine(concatenated); // Output: Hello, World!
Using StringBuilder
for efficiency in loops:
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(", ");
sb.Append("World");
sb.Append("!");
Console.WriteLine(sb.ToString()); // Output: Hello, World!
Using string interpolation (C# 6.0 and above):
string world = "World";
string concatenated = $"Hello, {world}!";
Console.WriteLine(concatenated); // Output: Hello, World!
Deep Dive
String concatenation isn’t new; it’s been around since the early days of programming. However, the way we do it in C# has evolved. Originally, +
was widely used, but it’s not always efficient, especially within loops, because strings in .NET are immutable. Each +
operation creates a new string, which can lead to performance issues.
String.Concat()
is a direct method call that’s also not loop-friendly but fine for a known, small number of strings.
StringBuilder
is the go-to for loop scenarios or when building a string incrementally. Under the hood, StringBuilder
maintains a buffer to accommodate additions without creating new strings for each append operation.
String interpolation, introduced in C# 6.0, allows for more readable and maintainable code. It translates into a String.Format()
call at compile time but is easier on the eyes and less prone to errors.
Each method has its place: quick concatenations (+
), combining a few strings (String.Concat()
), heavy-duty string building (StringBuilder
), and clean, formatted strings (string interpolation).
See Also
- Microsoft Docs on String concatenation: String Concatenation
- Microsoft Docs on
StringBuilder
: StringBuilder Class