ผมอ่านเกี่ยวกับ C # 's ImmutableSortedDictionary
ในSystem.Collections.Immutable
และความคิดเกี่ยวกับวิธีการที่จะใช้มันในโปรแกรมของฉัน ฉันค่อนข้างชอบ C ++ lower_bound
และupper_bound
(ดูที่นี่ ) และฉันค่อนข้างคาดหวังที่จะเห็นบางสิ่งบางอย่างสำหรับการค้นหาช่วง อย่างไรก็ตามวิธีการที่คล้ายกันดูเหมือนจะแปลกขาดจากเอกสาร ฉันพลาดอะไรไปรึเปล่า? หรือว่า MS จัดเตรียมพจนานุกรมเรียงอย่างแท้จริงโดยไม่ต้องเข้าถึงช่วงเรียงอย่างมีประสิทธิภาพ? ดูเหมือนจะไม่เหมือนสิ่งที่คน ๆ หนึ่งทำได้บนIEnumerable
ปุ่มเหมือนกับวิธีการขยายดังนั้นฉันค่อนข้างงุนงงฉันไม่เห็นบางสิ่งที่ได้รับจากคอลเลกชันโดยตรง
ImmutableList<T>
ชั้นนอกจากนี้ยังจะดำเนินการเป็นต้นไม้ AVL จากซอร์สโค้ด :/// The root node of the AVL tree that stores this set.
ImmutableList<T>
(การสนับสนุนจากต้นไม้ AVL) เหนือImmutableArray<T>
(รับการสนับสนุนจากอาร์เรย์) ตามเอกสาร เหตุผลในการใช้รายการที่ไม่เปลี่ยนรูปแบบ: 1) การอัปเดตข้อมูลเป็นเรื่องปกติหรือจำนวนองค์ประกอบไม่คาดว่าจะน้อย 2) การอัปเดตคอลเลกชันมีความสำคัญยิ่งกว่าการทำซ้ำเนื้อหา
IBinarySearchTree<K,V>
มันใช้รูปลักษณ์ที่ใกล้ชิดกับสิ่งที่ผมจะคาดหวังว่า ฉันสงสัยว่าเขาจะแก้ไขเพิ่มเติมหรือไม่