第5回 Dictionary<K, V>
あるキーと値の組み合わせを1.xではHashtableや、IDictionaryで表現してきた。
1.x C#
Hashtable ht = new Hashtable();
ht.Add(3, "A");
ht.Add(1, "B");
ht.Add(2, "C");
MessageBox.Show((string)ht[2]);
1.x VB
Dim ht As Hashtable = New Hashtable
ht.Add(3, "A")
ht.Add(1, "B")
ht.Add(2, "C")
MessageBox.Show(CStr(ht(2)))
1.x MC++
Hashtable __gc *ht = new Hashtable();
ht->Add(__box(3), S"A");
ht->Add(__box(1), S"B");
ht->Add(__box(2), S"C");
MessageBox::Show(static_cast<String*>(ht->get_Item(__box(2))));
型を宣言時に固定化できるということは、すべてのキャストが不要になるということだ。
特にDictionaryでは2値を扱うためキャストが増大傾向にある。
2.0 C#
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(3, "A");
dic.Add(1, "B");
dic.Add(2, "C");
MessageBox.Show(dic[2]);
2.0 VB
Dim dic As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String)
dic.Add(3, "A")
dic.Add(1, "B")
dic.Add(2, "C")
MessageBox.Show(dic(2))
2.0 C++/CLI
Dictionary<int, String^>^ dic = gcnew Dictionary<int, String^>();
dic->Add(3, "A");
dic->Add(1, "B");
dic->Add(2, "C");
MessageBox::Show(dic->Item[2]);
どうだろう。
今回のソースなどまさしくどの言語も同じ単純明快。
これこそが.Netな世界だといえると思いませんか?
連載をまとめてあります。
http://blogs.users.gr.jp/naka/category/285.aspx