Adsense_top

2009年6月15日月曜日

ジェネリック・クラスってすごい

当エントリーは、ソースコードのコピーの際、ミスをしているため書かれているソースコードは正しくありません。
正しくは
明日のエントリーに書き直しています。


今日、Dictionary<TKey, TValue> クラス を使っていて、こんなことが出来る事に気がつきました。 Dictionaryの値にDictionaryを入れることが出来てしまうのです。

ソース

Dictionary dicLanguage =
    new Dictionary();
Dictionary dicJapanese = new Dictionary();
Dictionary dicEnglish = new Dictionary();
Dictionary dicGerman = new Dictionary();

dicJapanese.Add("朝", "おはよう");
dicJapanese.Add("昼", "こんにちは");
dicJapanese.Add("夜", "こんばんは");
dicEnglish.Add("朝", "Good morning");
dicEnglish.Add("昼", "Hello");
dicEnglish.Add("夜", "Good evening");
dicGerman.Add("朝", "Guter Morgen");
dicGerman.Add("昼", "Guten Tag");
dicGerman.Add("夜", "Guter Abend");
dicLanguage.Add("日本語", dicJapanese);
dicLanguage.Add("英語", dicEnglish);
dicLanguage.Add("ドイツ語", dicGerman);
foreach (string key in dicLanguage.Keys)
{
foreach (string key2 in dicLanguage[key].Keys)
{
Console.WriteLine("{0} : {1} : {2}",
key, key2, dicLanguage[key][key2]);
}
}

出力結果
日本語 : 朝 : おはよう
日本語 : 昼 : こんにちは
日本語 : 夜 : こんばんは
英語 : 朝 : Good morning
英語 : 昼 : Hello
英語 : 夜 : Good evening
ドイツ語 : 朝 : Guter Morgen
ドイツ語 : 昼 : Guten Tag
ドイツ語 : 夜 : Guter Abend

僕だけが知らなかったのかもしれませんが、ちょっと感激しました。
List<T> クラスでもList<List<string>> みたいなことも出来ました。
何に使えるかは直ぐには思いつきませんが、取りあえず覚えていて損はないかと...。


 


0 件のコメント:

コメントを投稿