ใช้คลาส StringBuilder ในการต่อ String บน .NET

29 March 2013 11:03 PM Programming , ,
3-30-2013 2-54-41 AM

โดยปกติแล้วการ Concat String หรือต่อข้อความในตัวแปร String มักใช้ในกรณีที่เราต้องการเก็บข้อความที่มีความยาว เช่น ชุดคำสั่ง SQL​ Query, Parameter, ฯลฯ โดยปกติในภาษา C# ใช้เครื่องหมาย + เชื่อมระหว่าง String ซึ่งเป็นวิธีการที่นิยมใช้กันโดยทั่วไป แต่เมื่อ String มีความยาวมาก และ มีการเชื่อมหลายจุด เราควรจะเปลี่ยนไปใช้ Class StringBuilder มาช่วยให้การ Concat String แทนครับ เพื่อให้สามารถเร่งประสิทธิภาพในการทำงานของโปรแกรม

โดยผมจะเทียบให้เห็น Performance ในการทำงานเบื้องต้น เมื่อเราเลือกใช้ Class StringBuilder ในการ Concat String โดยผมจะใช้ Class Stopwatch มาช่วยในการการจับเวลา เพื่อให้เห็นถึงความแตกของความเร็วในการ Concat String ของคำสั่งแบบเดิมครับกับการใช้ StringBuilder

วิธีการใช้งาน Stringbuilder นั้นเริ่มต้นง่ายมาก โดยการ เพิ่ม

using System.Text;

เป็น namespace ของ Class StringBuilder เพื่อให้เราสามารถเรียกใช้งานได้สะดวก หรือใครจะเรียกแบบ FullPath เลยก็ได้นะครับ

จาก Code ผมเขียนให้แสดงผลลัพธ์ออกมาทาง Console หรือ DOS นั้นเอง โดยจะจับเวลาการ Concat String ของทั้ง 2 วิธีการ แล้วนำเวลาจับได้มาแสดงผลเปรียบเทียบให้เห็นถึงความเร็ว ซึ่งอันไหนใช้เวลามากแปลว่าช้ากว่า โดยเมื่อ Run โปรแกรมให้แสดงผลออกมา เราก็จะเห็นความเร็วตามรูปด้านล่างครับ

Capture

เมื่อเห็นความเร็วแล้ว จึงสรุปได้ว่า StringBuilder มีความเร็วในการ Concat String สูงกว่ามาก หวังว่าคงจะมีประโยชน์ในการเอาไปใช้งานนะครับ ใครมีคำถามอะไรสอบถามได้เลยนะครับ