Giới thiệu
Phương thức tĩnh string.Join() nối các phần tử của mảng chuỗi (hoặc IEnumerable<string>) thành một chuỗi duy nhất, chèn phân tách (separator) giữa các phần tử. Đây là cách hiệu quả để tạo chuỗi từ collection.
Cú pháp
public static string Join(string separator, string[] value); public static string Join(string separator, IEnumerablevalues); // Các overload khác cho object[], params string[], v.v.
Ví dụ 1
using System;
public class Demo
{
public static void Main(string[] args)
{
string[] strArr = { "One", "Two", "Three", "Four" };
Console.WriteLine("Mảng chuỗi...");
foreach (string s in strArr)
{
Console.WriteLine(s);
}
string str = string.Join("/", strArr);
Console.WriteLine("Kết quả (sau khi nối) = " + str);
}
}
Kết quả
Mảng chuỗi... One Two Three Four Kết quả (sau khi nối) = One/Two/Three/Four
Ví dụ 2
using System;
public class Demo
{
public static void Main(string[] args)
{
string[] strArr = { "AB", "BC", "CD", "DE", "EF", "FG", "GH", "IJ" };
Console.WriteLine("Mảng chuỗi...");
foreach (string s in strArr)
{
Console.WriteLine(s);
}
string str = string.Join("*", strArr);
Console.WriteLine("Kết quả (sau khi nối) = " + str);
}
}
Kết quả
Mảng chuỗi... AB BC CD DE EF FG GH IJ Kết quả (sau khi nối) = AB*BC*CD*DE*EF*FG*GH*IJ
Các overload hữu ích khác
// Nối từ ListList list = new List { "A", "B", "C" }; string result = string.Join(", ", list); // "A, B, C" // Nối với params (không cần mảng) string result2 = string.Join("-", "A", "B", "C"); // "A-B-C" // Nối object (tự động gọi ToString()) object[] objs = { 1, 2.5, "test", DateTime.Now }; string result3 = string.Join(" | ", objs); // Nối IEnumerable (LINQ) var numbers = Enumerable.Range(1, 5); string result4 = string.Join(", ", numbers.Select(n => n * n)); // "1, 4, 9, 16, 25"
Lưu ý quan trọng
Join()hiệu quả hơn concatenation lặp lại (+=) vì chỉ cấp phát bộ nhớ một lần.- Nếu
separatorlànull, dùngString.Empty(nối liền nhau). - Phần tử
nulltrong mảng được xử lý như chuỗi rỗng. - Trong .NET Core/.NET 5+, có
string.Join(ReadOnlySpan<char>, ...)hiệu suất cao hơn. - Đối ngược của Join là
string.Split().