EDIT:それは、.NET が判明はすでに組み合わせリスト/辞書の種類を持っているん:OrderedDictionary
。残念ながら、これは非ジェネリック型なので、私の見解ではそれほど魅力的ではありません。ただし、Add
を繰り返し呼び出すだけで、広告掲載オーダーは保持されます。
それはAdd
の呼び出しと少し奇妙だ、キー/値のペアを追加するためにインデクサーを使用すると、以前の関連付けを上書きするのに対しは、キーがすでに存在するエントリには影響を与えませありません。基本的にはひどくいいAPIのようには思えません。あなたのユースケースが正確にの動作と一致しない限り、私は個人的にそれを避けています。
いいえ、.NETには挿入順保留辞書がありません。関連するAdd
メソッドを使用して、常に独自のリストベースの型を書くことができます。その後
public class KeyValueList<TKey, TValue> : List<KeyValuePair<TKey, TValue>>
{
public void Add(TKey key, TValue value)
{
Add(new KeyValuePair<TKey, TValue>(key, value));
}
}
:これも、私は既存の型を拡張検討したい数少ない場所の一つかもしれません
var list = new KeyValueList<string, string>
{
{ "key1", "value1"},
{ "key2", "value2"}
};
代替組成物を使用することですが、私の直感は、このです継承の合理的な使用です。なぜ私はこのケースで満足しているのでしょうか?通常はそうではありません。
実際には、あなたの目標はリストではなく辞書であるように見えます。これは挿入オーダーを維持します。つまり、その要素が自然順序ではなく、挿入順にソートされた の辞書です。これは正しいです? –
いいえ、私はちょうど辞書のような初期化が欲しいです。ジョンの答えはまさに私が必要なものです。私が持っている悪いのは、新しいタイプを定義することです。 – Poma