Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Join() trong C#

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, IEnumerable values);
// 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ừ List
List 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 separator là null, dùng String.Empty (nối liền nhau).
  • Phần tử null trong 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().