2008-09-28 8 views
1

.NETで(整数、論理値)のキー値のペアのリストを格納する必要がありますIntegerとBooleanのキー値のペアを順序どおりのコレクションに保存するにはどうすればよいですか?

辞書を使用すると、それを並べ替えることができます。これを処理するコレクションが組み込まれていますか?

+0

さらに重要なのは、一定時間内にキーで値にアクセスしているか、挿入注文のアイテムを繰り返し処理できることですか? – Rob

+0

両方のプロパティを与えるために、実装がハッシュテーブルとリンクリストの両方を使用することはできません。 Javaにはリンクされたハッシュマップがあります。http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedHashMap.html – Jamie

+0

もちろん、理由はありませんが、組み込みの方法について質問しています。 –

答えて

8
List<KeyValuePair<int, bool>> l = 
         new List<KeyValuePair<int, bool>>(); 
    l.Add(new KeyValuePair<int, bool>(1, false)); 
0

はあなただけKeyValuePairsのリストを作成することができます...その目的を台無しにしてしまうの挿入順序を保存:

var myList = new List<KeyValuePair<int, bool>>(); 
-2

辞書はそれらを並べ替えることになっている、それだけでマップが順序の概念はありません。その概念をサポート.NETでクラスがあり

は:

SortedDictionary<Tkey, Tvalue> 

それはアイテムをソートする方法を知られているので、処理鍵タイプがデIComparableインターフェイスを実装する必要があります。この方法で、IComparable実装で指定された順序でキーまたは値を返す必要があります。当然の整数の場合、それは簡単です:

a < b 
0

OrderedDictionaryは行く方法です。それは、O(1)捕捉とO(n)挿入を提供する。詳細情報についてsee codeproject

0

アレイについてはどうですか?

KeyValuePair<int, bool>[] pairs 

コレクションの初期化後にペアを追加する場合は、リストが便利です。

List<KeyValuePair<int, bool>> 
関連する問題