Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Join() ใน C#

เมธอด String.Join() ใน C# ใช้สำหรับต่อ (concatenate) สมาชิกทั้งหมดของอาเรย์สตริงเข้าด้วยกัน โดยใช้ตัวคั่น (separator) ที่ระบุระหว่างแต่ละสมาชิก

ไวยากรณ์ (Syntax)

public static string Join(string separator, string[] value);
  • separator — สตริงตัวคั่นที่จะวางระหว่างสมาชิก
  • value — อาเรย์สตริงที่ต้องการต่อกัน

มี overload อื่นๆ เช่น Join(string, IEnumerable<string>), Join(char, string[]), Join<T>(string, IEnumerable<T>) (แปลง T เป็น string อัตโนมัติ)

ตัวอย่างที่ 1: ต่ออาเรย์สตริงด้วยเครื่องหมาย "/"

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        string[] strArr = { "One", "Two", "Three", "Four" };

        Console.WriteLine("String Array...");
        foreach (string s in strArr)
        {
            Console.WriteLine(s);
        }

        string str = string.Join("/", strArr);
        Console.WriteLine("Result (after joining) = " + str);
    }
}

ผลลัพธ์

String Array...
One
Two
Three
Four
Result (after joining) = One/Two/Three/Four

ตัวอย่างที่ 2: ต่ออาเรย์สตริงด้วยเครื่องหมาย "*"

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        string[] strArr = { "AB", "BC", "CD", "DE", "EF", "FG", "GH", "IJ" };

        Console.WriteLine("String Array...");
        foreach (string s in strArr)
        {
            Console.WriteLine(s);
        }

        string str = string.Join("*", strArr);
        Console.WriteLine("Result (after joining) = " + str);
    }
}

ผลลัพธ์

String Array...
AB
BC
CD
DE
EF
FG
GH
IJ
Result (after joining) = AB*BC*CD*DE*EF*FG*GH*IJ

ตัวอย่างเพิ่มเติม: Join กับ IEnumerable และชนิดข้อมูลอื่น

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo
{
    public static void Main()
    {
        // กับ List
        var list = new List<int> { 1, 2, 3, 4, 5 };
        Console.WriteLine(string.Join(", ", list));  // 1, 2, 3, 4, 5

        // กับ LINQ
        var words = new[] { "apple", "banana", "cherry" };
        Console.WriteLine(string.Join(" | ", words.Where(w => w.Length > 5))); // banana | cherry

        // Separator เป็น string ว่าง — ต่อติดกันโดยไม่มีตัวคั่น
        Console.WriteLine(string.Join("", new[] { "A", "B", "C" })); // ABC

        // null separator = string.Empty
        Console.WriteLine(string.Join(null, new[] { "X", "Y" })); // XY
    }
}

สรุป

  • String.Join() เป็นวิธีมาตรฐานและมีประสิทธิภาพสำหรับต่อสตริงหลายตัวพร้อมตัวคั่น
  • จัดการ null ในอาเรย์ได้ (ถือเป็น string.Empty)
  • มี overload รองรับ IEnumerable<T> และ generic Join<T>() — ใช้กับ List, array, LINQ ได้เลย
  • ประสิทธิภาพดีกว่าการใช้ + หรือ StringBuilder ในลูปสำหรับกรณีง่ายๆ
  • ตัวคั่น (separator) สามารถเป็น string ความยาวเท่าไรก็ได้ รวมถึง string ว่าง