1

foreachでループを実行する場合、Dictionary<>.Keys先入れ先出しや後入れ先出しなどのルールはありますか? それともランダムですか?

4

3 に答える 3

5

辞書クラス

アイテムが返される順序は定義されていません。

ディクショナリ内の項目は順序付けされていません。同じ注文で同じ商品を確実に入手することはできません。

そのプロパティDictionary.Keys プロパティ

Dictionary.KeyCollection 内のキーの順序は指定されていませんが、Values プロパティによって返される Dictionary.ValueCollection 内の関連付けられた値と同じ順序です。

順序が必要な場合、またはインデックスで辞書項目にアクセスしたい場合は、OrderedDictionaryを使用できます

キーまたはインデックスからアクセスできるキーと値のペアのコレクションを表します。

于 2012-12-25T05:07:29.373 に答える
2

それはすべてドキュメントにあります。

Dictionary.KeyCollection 内のキーの順序は指定されていませんが、Values プロパティによって返される Dictionary.ValueCollection 内の関連付けられた値と同じ順序です。

于 2012-12-25T05:07:39.857 に答える
0

の順序、dictionary is not deterministicキーの取得中に順序を確認できませんでした。

列挙のために、ディクショナリ内の各項目は、値とそのキーを表す KeyValuePair 構造体として扱われます。アイテムが返される順序は定義されていません、 MSDN

順序を伝えるような方法でキーを作成できます。たとえば、辞書にキーを追加するときにインクリメントされた整数を使用したり、順序付けられた辞書を使用したりできます。

于 2012-12-25T05:07:30.253 に答える