C#:
การต่อสตริง

วิธีการ:

การต่อสตริงใน C# สามารถทำได้หลายวิธี:

ใช้งาน + operator:

string hello = "Hello";
string world = "World";
string concatenated = hello + ", " + world + "!";
Console.WriteLine(concatenated); // ผลลัพธ์: Hello, World!

ใช้งาน String.Concat() method:

string concatenated = String.Concat("Hello", ", ", "World", "!");
Console.WriteLine(concatenated); // ผลลัพธ์: Hello, World!

ใช้งาน StringBuilder เพื่อประสิทธิภาพในลูป:

StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(", ");
sb.Append("World");
sb.Append("!");
Console.WriteLine(sb.ToString()); // ผลลัพธ์: Hello, World!

ใช้งาน string interpolation (C# 6.0 และสูงกว่า):

string world = "World";
string concatenated = $"Hello, {world}!";
Console.WriteLine(concatenated); // ผลลัพธ์: Hello, World!

ลงลึก

การต่อสตริงไม่ใช่เรื่องใหม่; มันเกิดขึ้นมาตั้งแต่ยุคเริ่มต้นของการเขียนโปรแกรม อย่างไรก็ตาม, วิธีการที่เราทำใน C# นั้นได้พัฒนาขึ้น ดั้งเดิม, + ถูกใช้งานอย่างแพร่หลาย, แต่อาจจะไม่มีประสิทธิภาพเสมอไป, เฉพาะในลูป, เพราะสตริงใน .NET เป็น immutable การดำเนินการ + ทุกครั้งสร้างสตริงใหม่, ซึ่งอาจนำไปสู่ปัญหาด้านประสิทธิภาพ

String.Concat() เป็นการเรียก method โดยตรงที่ก็ไม่เหมาะกับลูปเช่นกัน แต่เหมาะกับจำนวนสตริงเล็กน้อยที่รู้จัก

StringBuilder เป็นไปเพื่อสถานการณ์ลูปหรือเมื่อสร้างสตริงแบบค่อยๆเพิ่มขึ้น เบื้องหลัง, StringBuilder รักษาบัฟเฟอร์เพื่อรองรับการเพิ่มโดยไม่ต้องสร้างสตริงใหม่สำหรับการเพิ่มทุกครั้ง

String interpolation, แนะนำใน C# 6.0, ช่วยให้โค้ดอ่านง่ายขึ้นและรักษาได้ง่าย เป็นการแปลเป็น String.Format() เรียกในระหว่างการคอมไพล์ แต่เป็นการสะดวกต่อการมองและลดความเสี่ยงต่อข้อผิดพลาด

แต่ละวิธีมีจุดมุ่งหมายของตัวเอง: การต่อสตริงอย่างรวดเร็ว (+), การรวมสตริงไม่กี่ตัว (String.Concat()), การสร้างสตริงหนักๆ (StringBuilder), และสตริงที่มีรูปแบบสวยงาม (string interpolation).

ดูเพิ่มเติม