C# 多鍵字典:開源解決方案
標準 C# 函式庫不包含內建的多鍵字典。 然而,開源社群提供了有效的解決方法。 請注意,「多鍵」通常意味著具有兩個鍵的字典。
利用元組實現多鍵功能
常見的方法是使用 C# 內建的元組類型來建立鍵對。 這提供了輕量級、不可變的組合鍵。 自訂元組結構可以定義如下:
<code class="language-csharp">public struct Tuple<T1, T2> { public readonly T1 Item1; public readonly T2 Item2; public Tuple(T1 item1, T2 item2) { Item1 = item1; Item2 = item2; } }</code>
為了更好的可讀性和類型推斷,可以使用靜態 Tuple
類別:
<code class="language-csharp">public static class TupleExtensions { public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2) { return new Tuple<T1, T2>(item1, item2); } }</code>
這種方法自動處理不變性、雜湊程式碼產生和相等性檢查。
重要的雜湊程式碼注意事項
使用元組作為鍵時,請記住預設雜湊碼可能只使用第一個元素。 為了獲得最佳效能,請確保第一個關鍵元素具有高度獨特性或建立自訂雜湊碼函數。
建立自訂多鍵字典類別
或者,自訂多鍵字典類別提供更多控制和靈活性,支援強制非空鍵和自訂鍵比較規則等功能。 這需要更多的開發工作。
總結
雖然本機多鍵字典不是標準 C# 函式庫的一部分,但使用元組或自訂類別的開源技術為管理基於多個鍵的資料提供了實用的解決方案。
以上是如何使用開源替代方案在 C# 中實作多鍵字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!