หนึ่งใช้อาจจะย้อนกลับLookupDictionary
สมมติว่าคุณใช้สมุดโทรศัพท์ที่Dictionaryมีชื่อ (ไม่ซ้ำกัน) เป็นคีย์โดยแต่ละชื่อจะเชื่อมโยงกับหมายเลขโทรศัพท์ แต่คนสองคนที่มีชื่อต่างกันอาจใช้หมายเลขโทรศัพท์เดียวกัน นี่ไม่ใช่ปัญหาสำหรับ a Dictionaryซึ่งไม่สนใจว่าคีย์สองปุ่มตรงกับค่าเดียวกัน
ตอนนี้คุณต้องการวิธีการค้นหาผู้ที่เป็นหมายเลขโทรศัพท์ คุณสร้าง a Lookupเพิ่มทั้งหมดKeyValuePairsจากของคุณDictionaryแต่ย้อนหลังด้วยค่าเป็นคีย์และคีย์เป็นค่า ตอนนี้คุณสามารถสอบถามหมายเลขโทรศัพท์และรับรายชื่อของทุกคนที่มีหมายเลขโทรศัพท์ การสร้าง a Dictionaryด้วยข้อมูลเดียวกันจะทำให้ข้อมูลลดลง (หรือล้มเหลวขึ้นอยู่กับว่าคุณทำมันอย่างไร)
dictionary["555-6593"] = "Dr. Emmett Brown";
dictionary["555-6593"] = "Marty McFly";
หมายความว่ารายการที่สองเขียนทับรายการแรก - เอกสารไม่อยู่ในรายการอีกต่อไป
พยายามเขียนข้อมูลเดียวกันด้วยวิธีที่แตกต่างกันเล็กน้อย:
dictionary.Add("555-6593", "Dr. Emmett Brown");
dictionary.Add("555-6593", "Marty McFly");
จะโยนข้อยกเว้นในบรรทัดที่สองนับตั้งแต่ที่คุณไม่สามารถที่สำคัญที่มีอยู่แล้วในAddDictionary
[แน่นอนคุณอาจต้องการที่จะใช้โครงสร้างข้อมูลเดียวอื่น ๆ ให้ค้นหาในทั้งสองทิศทาง ฯลฯ ตัวอย่างเช่นนี้หมายความว่าคุณจะต้องงอกใหม่LookupจากDictionaryทุกครั้งที่มีการเปลี่ยนแปลงหลัง แต่สำหรับข้อมูลบางอย่างมันอาจเป็นทางออกที่ถูกต้อง]