2009-05-08 26 views
47

C#では、ハッシュテーブルを1行の式に取り込むことができますか?私は以下のPythonと同等なものを考えています:C#ハッシュテーブルを初期化する最も簡潔な方法

mydict = {"a": 23, "b": 45, "c": 67, "d": 89} 

言い換えれば、別の表現では、各キーと値のペアを設定する代わりはありますか?

答えて

73

C#3には、コレクション初期化子という言語拡張があり、1つのステートメントでコレクションの値を初期化できます。

ここで使用した例であるDictionary<,>

using System; 
using System.Collections.Generic; 

class Program 
{ 
    static void Main() 
    { 
     var dict = new Dictionary<string, int> 
     { 
      {"a", 23}, {"b", 45}, {"c", 67}, {"d", 89} 
     }; 
    } 
} 

この言語拡張はC#3コンパイラとIEnumerableを実装し、パブリックAdd方法を有する任意のタイプによって支持されています。興味のある方は

私は C#のチームは、このような好奇心旺盛な方法でこの言語拡張を実装し、なぜあなたは質問に対する優れた答えを読んでたら、あなたはそれがの多くを作ることがわかりますあなたは(へとthis question I asked here on StackOverflowを読むことをお勧めセンス)。

+1

複数のレベルのディクショナリを定義するための同様の構文はありますか?たとえば、 'Dictionary >'のようにします。 –

+0

私はこのテクニックを見つけて、あなたの答えを編集するように追加しますが、これはちょっとばかげています。 –

関連する問題