承接上文,本文呈現 ReversibleSortedList 的私有方法區、公用/私有屬性區、欄位區完整原始碼,涵蓋容量管理、插入/刪除陣列搬移、二分搜尋索引、顯式介面實現、排序方向切換等核心邏輯。
EnsureCapacity(min):雙倍成長策略,呼叫 InternalSetCapacity。Insert(index, key, value):Array.Copy 後移元素,雙陣列同步搬移,更新 _size、version。InternalSetCapacity(value, updateVersion):配置新陣列、複製舊資料、處理縮容/擴容、版本號遞增。IsCompatibleKey/VerifyKey/VerifyValueType:非泛型介面(IDictionary、ICollection)轉型檢查。ICollection.Add/Contains/CopyTo/Remove 、IDictionary.Add/Contains/Remove/GetEnumerator、IEnumerable.GetEnumerator 統一委派給泛型實作。| 屬性 | 用途 |
|---|---|
| Capacity | 取得/設定內部陣列長度,設定時呼叫 InternalSetCapacity |
| Comparer | 回傳 SortDirectionComparer,支援升冪/降冪切換 |
| Count / _size | 實際元素數量 |
| this[TKey] | 索引器:BinarySearch 找鍵,找到更新值,否則 Insert(~index, key, value) |
| Keys / Values | 回傳 KeyList/ValueList 唯讀視圖 |