私は C# と LINQ の専門家ではありません。
私はDictionary
ハッシュテーブルを理解しています。つまり、キーはソートされていません。
dataBase = new Dictionary<string, Record>()
Record
特定のキー文字列の多数のデータを保持するユーザー定義のクラスです。
これをLINQで並べ替えDictionary
られた辞書に変換する興味深い例を見つけました。
var sortedDict = (from entry in dataBase orderby entry.Key ascending select entry)
.ToDictionary(pair => pair.Key, pair => pair.Value);
このコードは正しく動作します。結果sortedDict
はキーでソートされます。
質問: それsortedDict
はまだハッシュ テーブルであり、次のタイプであることがわかりました。
System.Collections.Generic.Dictionary<string, Record>
map
結果の辞書は、キーの順序を維持するために (バランスのとれた) バイナリ ツリーとして一般に実装される C++ STLのようなものになるはずです。ただし、結果のディクショナリは依然としてハッシュ テーブルです。
sortedDict
順序を維持するにはどうすればよいですか?ハッシュ テーブルは、キーの順序を保持できません。C# の実装はGeneric.Dictionary
典型的なハッシュ テーブル以外ですか?