.NETで(整数、論理値)のキー値のペアのリストを格納する必要がありますIntegerとBooleanのキー値のペアを順序どおりのコレクションに保存するにはどうすればよいですか?
辞書を使用すると、それを並べ替えることができます。これを処理するコレクションが組み込まれていますか?
.NETで(整数、論理値)のキー値のペアのリストを格納する必要がありますIntegerとBooleanのキー値のペアを順序どおりのコレクションに保存するにはどうすればよいですか?
辞書を使用すると、それを並べ替えることができます。これを処理するコレクションが組み込まれていますか?
List<KeyValuePair<int, bool>> l =
new List<KeyValuePair<int, bool>>();
l.Add(new KeyValuePair<int, bool>(1, false));
挿入順序を維持したい場合は、なぜキューを使用しないのですか?
http://msdn.microsoft.com/en-us/library/6tc79sx1(VS.71).aspx
A辞書はより高速な検索のための要素を並べ替え。
はあなただけKeyValuePairsのリストを作成することができます...その目的を台無しにしてしまうの挿入順序を保存:
var myList = new List<KeyValuePair<int, bool>>();
辞書はそれらを並べ替えることになっている、それだけでマップが順序の概念はありません。その概念をサポート.NETでクラスがあり
は:
SortedDictionary<Tkey, Tvalue>
それはアイテムをソートする方法を知られているので、処理鍵タイプがデIComparableインターフェイスを実装する必要があります。この方法で、IComparable実装で指定された順序でキーまたは値を返す必要があります。当然の整数の場合、それは簡単です:
a < b
Ordered dictionaryは、インデックスまたはキーによってretreivalことができます。
OrderedDictionaryは行く方法です。それは、O(1)捕捉とO(n)挿入を提供する。詳細情報についてsee codeproject
アレイについてはどうですか?
KeyValuePair<int, bool>[] pairs
コレクションの初期化後にペアを追加する場合は、リストが便利です。
List<KeyValuePair<int, bool>>
さらに重要なのは、一定時間内にキーで値にアクセスしているか、挿入注文のアイテムを繰り返し処理できることですか? – Rob
両方のプロパティを与えるために、実装がハッシュテーブルとリンクリストの両方を使用することはできません。 Javaにはリンクされたハッシュマップがあります。http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedHashMap.html – Jamie
もちろん、理由はありませんが、組み込みの方法について質問しています。 –