2010-11-19 3 views
1

列挙型のキー辞書を整数型の辞書にキャストすることは可能ですか? (または、コピーコンストラクタは、私もやっている何のために正常に動作します。)つまり、のようなもの:辞書キャスト

Dictionary<int, string> NewDictionary = 
    (Dictionary<int, string>)OldDictionary<MyEnum, string>; 

(はい、私は構文はそれだけだ、非常に正確ではないことを知っていますそれは私がから来ているかを示すために)

答えて

5

あなたは辞書を反復処理し、新しいものを構築することができ、Enumerable.ToDictionary拡張子を使用するなど、各キーを()変換:。

OldDictionary.ToDictionary(x => ((int)x.Key, x => x.Value); 
+0

辞書ではありません共変量 – Kikaimaru

+0

はい、ありがとうございます。さまざまな方法をありがとう! – RobinHood70

+0

@Kikaimaru:確かに?私は実際にチェックしなかった、ただそれが可能であると仮定した。一方、型のセマンティクスを大幅に変更するので、これを許さないのは意味があります。たとえば、キャストからキー衝突などが発生する可能性があり、ハッシュが異なってキャストを奇妙な高価な操作にします。 –

関連する問題