それはまだDictionary<string, string>
の代わりHashtable
かかわらを(あなたが本当にに持っていない限り、非ジェネリックコレクションを使用していない)を使用して、.NET 2.をターゲットにすることができますC#3 collection initializers、と簡単です。
private static readonly Dictionary<string, string> Foo
= new Dictionary<string, string>
{
{ "Foo", "Bar" },
{ "Key", "Value" },
{ "Something", "Else" }
};
C#2に似たものはありません。あなたは本当にまだVisual Studio 2005を使用していますか?それでもC#3と4 ...
EDITと.NET 2を標的にすることができるということを忘れないでください:あなた本当には、C#2とハッシュテーブルでそれをしたい場合は、このような静的なメソッドを記述することができます。その後
public static Hashtable CreateHashtable(params object[] keysAndValues)
{
if ((keysAndValues.Length % 2) != 0)
{
throw new ArgumentException("Must have an even number of keys/values");
}
Hashtable ret = new Hashtable();
for (int i = 0; i < keysAndValues.Length; i += 2)
{
ret[keysAndValues[i]] = keysAndValues[i + 1];
}
return ret;
}
:
private static readonly Hashtable Foo = HashtableHelper.CreateHashtable(
"key1", "value1", "key2", 10, "key3", 50);
私は本当にお勧めしないと思います...しかしその
C#3を使用している場合は同じ構文がHashtable
で動作しますが、可能であれば一般的なコレクションを使用する価値があります。
constフィールドまたは静的フィールドが必要ですか? Constは 'Hashtable'では利用できません – VMAtm
@Nabil Koroghli - なぜこれをやりたいのですか?私は文字列[]が定数ではないことを指摘しなければならない。 –
@Nabil Koroghli - コレクション初期化子を静的変数でなくても使用できることは理解できますか? –