Trong C#, toán tử + được nạp chồng cho kiểu string để thực hiện nối chuỗi (concatenation). Đây là cách phổ biến nhất để kết hợp nhiều chuỗi.
Ví dụ cơ bản
char[] c1 = { 'H', 'e', 'n', 'r', 'y' };
string str1 = new string(c1); // "Henry"
char[] c2 = { 'J', 'a', 'c', 'k' };
string str2 = new string(c2); // "Jack"
string result = "Welcome " + str1 + " and " + str2 + "!";
// "Welcome Henry and Jack!"
Mã nguồn hoàn chỉnh
using System.Text;
using System;
class Program
{
static void Main()
{
char[] c1 = { 'H', 'e', 'n', 'r', 'y' };
string str1 = new string(c1);
char[] c2 = { 'J', 'a', 'c', 'k' };
string str2 = new string(c2);
Console.WriteLine("Welcome " + str1 + " and " + str2 + "!");
}
}
Kết quả
Welcome Henry and Jack!
Các cách nối chuỗi trong C#
| Cách | Ví dụ | Hiệu suất | Độ đọc |
|---|---|---|---|
| Toán tử + | a + b + c | Tốt cho vài chuỗi | Cao |
| String.Concat | String.Concat(a, b, c) | Tốt, không tạo trung gian | Trung bình |
| String.Join | String.Join(",", arr) | Tốt cho mảng/collection | Cao |
| StringBuilder | sb.Append(a).Append(b) | Tốt nhất cho nhiều lần nối/lặp | Thấp hơn |
| String Interpolation | $"{a} {b} {c}" | Tốt (biên dịch thành String.Concat/Format) | Cao nhất |
Lưu ý hiệu suất
- Chuỗi (string) trong C# bất biến (immutable) - mỗi lần nối tạo chuỗi mới.
- Trong vòng lặp, luôn dùng StringBuilder.
- Ngoài vòng lặp,
+hoặc$""đều tốt (biên dịch tối ưu).
Ví dụ StringBuilder cho vòng lặp
var sb = new StringBuilder();
for (int i = 0; i < 1000; i++)
sb.Append(i).Append(',');
string result = sb.ToString();