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).
ดูเพิ่มเติม
- Microsoft Docs เกี่ยวกับการต่อสตริง: การต่อสตริง
- Microsoft Docs เกี่ยวกับ
StringBuilder
: StringBuilder Class