Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ทำไม Dictionary ถูกนิยมมากกว่า Hashtable ใน C#?

Hashtable เป็นคอลเลกชัน Non-generic (เก็บ object) ต้อง Boxing/Unboxing สำหรับ Value Type ทำให้ช้ากว่าและไม่ Type-Safe

Dictionary<TKey, TValue> เป็น Generic Collection (ใน System.Collections.Generic) รองรับ Strong Typing ไม่ต้อง Boxing/Unboxing ประสิทธิภาพดีกว่ามาก

เปรียบเทียบความเร็ว

// Hashtable - ช้ากว่า
hashtable.ContainsKey("12345");

// Dictionary - เร็วกว่า และ Type-Safe
dictionary.ContainsKey("12345");

ข้อดีของ Dictionary เพิ่มเติม

  • IntelliSense ทำงานได้เต็มที่
  • Compile-time Type Checking
  • ไม่ต้อง Cast ค่าที่ดึงออกมา
  • รองรับ Interface ที่ทันสมัยกว่า (IDictionary<TKey,TValue>, IReadOnlyDictionary<TKey,TValue>)

สรุป: ควรใช้ Dictionary<TKey, TValue> เสมอสำหรับโค้ดใหม่ ใช้ Hashtable เฉพาะเมื่อต้องรองรับ Legacy Code เท่านั้น