1

この質問は、以前の投稿に基づいています https://stackoverflow.com/a/8425200/737076

問題は、一度作成されたディクショナリ、そのすべての子、および子の子をどのようにソートするかです。

私は比較者を考えていますが、いくつかの提案を得たいと思います。

4

3 に答える 3

4

辞書はソートできません。リストや配列のようなインデックス順はありません。ただし、辞書のキーを取得してキーをソートすることはできます。

List<string> dictionaryKeys = new List<string>(dict.Keys);
dictionaryKeys.Sort();

次に、リストを反復処理して、値を順番に取得します。

for (i = 0; i < dictionaryKeys.Count; i++)
{
    string key = dictionaryKeys[i];
    string value = dict[key];
}

これはシミュレートされた種類の辞書になります。

複数のレベルを持つ Dictionary の場合、すべてのレベルを反復処理し、何らかのロジックを使用してこれを行う必要があります。

ただし、あなたの目標がソートされた辞書である場合は、情報を保存するためのより良い方法があると確信していますList<class_you_created_to_hold_all_the_information>:)

于 2012-04-18T00:55:46.063 に答える
4

ハッシュマップではなく、バイナリ検索ツリーとして実装されているSortedDictionaryを探しています。前の質問と同じ方法で実装することに加えて、コレクションをソートする方法を記述するために Comparer を提供する必要があります。

于 2012-04-18T01:08:28.567 に答える
-1

SortedDictionaryクラス を使用 します。

于 2012-04-18T01:37:22.033 に答える