วิธีที่มีประสิทธิภาพมากที่สุดในการเชื่อมสตริงคืออะไร
String.Formatเตียรอยด์ ซึ่งประสิทธิภาพที่ชาญฉลาดนั้นจะช้ากว่านิดหน่อยที่หนึ่ง liners +และString.Concatแต่ดีกว่านั้นแม้ว่าจะช้ากว่าStringBuilderที่หลายสาย พูดจริงแล้วความแตกต่างด้านประสิทธิภาพนั้นถ้าฉันต้องเลือกวิธีเดียวที่จะต่อกันฉันจะเลือกการแก้ไขสตริงโดยใช้$... หากสองวิธีแล้วเพิ่มStringBuilderไปยังกล่องเครื่องมือของฉัน ด้วยสองวิธีที่คุณตั้งไว้
String.Joinคำตอบดังต่อไปนี้ไม่ได้ทำ+ความยุติธรรมและความเป็นจริงที่พูดเป็นวิธีที่ดีที่จะสตริง concatenate แต่มันเป็นผลการดำเนินงานได้อย่างรวดเร็วน่าแปลกใจที่ชาญฉลาด คำตอบว่าทำไมถึงน่าสนใจ String.ConcatและString.Joinสามารถกระทำได้ทั้งในอาร์เรย์ แต่String.Joinจริงๆแล้วเร็วกว่า เห็นได้ชัดว่าString.Joinมันค่อนข้างซับซ้อนและปรับให้เหมาะสมมากกว่าString.Concatส่วนหนึ่งเป็นเพราะมันทำงานคล้ายกับStringBuilderที่มันคำนวณความยาวของสตริงก่อนแล้วจึงสร้างสตริงที่ได้รับประโยชน์จากความรู้นี้โดยใช้ UnSafeCharBuffer
String.Joinยังต้องมีการสร้างอาร์เรย์ซึ่งดูเหมือนว่าทรัพยากรไม่มีประสิทธิภาพใช่หรือไม่ ... เปิดออก+และString.Concatสร้างอาร์เรย์สำหรับองค์ประกอบของพวกเขาอยู่ดี ดังนั้นการสร้างตนเองอาร์เรย์และการให้อาหารมันString.Joinค่อนข้างเร็วขึ้น ... แต่StringBuilderยังคงมีประสิทธิภาพดีกว่าString.Joinในทุกวิธีการปฏิบัติในขณะที่ยัง$เป็นเพียงช้าลงเล็กน้อยและเร็วขึ้นมากในสายยาว ... ไม่ต้องพูดถึงว่ามันเป็นที่น่าอึดอัดใจและน่าเกลียดที่จะใช้String.Joinถ้าคุณมี เพื่อสร้างอาร์เรย์สำหรับมันในจุดที่