1. Hoạt động của string và string builder
Giống như java trong c# cũng có kiểu dữ liệu string và stringbuilder để xử lý chuỗi. Vậy 2 kiểu dữ liệu này khác nhau như nào và khi nào thì stringbuilder sẽ nhanh hơn string.
- Xét ví dụ với string
1 2 3 |
string temp = "Day la chuoi"; temp = temp + " viet bang string"; #hien tai bien temp dang co gia tri la "Day la chuoi viet bang string" |
Khi chạy đoạn code trên thực chất chuỗi trong biến temp không được thay đổi mà 1 chuỗi mới sẽ được tạo ra và gán cho biến temp. Như vậy bộ nhớ mới sẽ được dùng và mất thời gian tạo instance string mới
- Với String builder việc lưu trữ dư liệu bằng mảng ký tự. Vì thế bộ nhớ chỉ cân lưu chính xác phần chuỗi cần thêm vào chứ không phải tạo 1 chuỗi mới hoàn toàn như string
2. Khi nào String builder nhanh hơn string
Khi đã hiểu cách hoạt động của 2 loại dữ liệu thì dễ thấy khi có nối ghép chuỗi nhiều lần thì string builder sẽ cho hiệu suất cao hơn. Còn với nhưng thao tác khác (in ra chuỗi, khởi tạo..) thì 2 loại dữ liệu này gần như giống nhau