■
List
List<string> list = ...; comboBox1.Items.AddRange(list.ToArray());
とすると、(AddRangeの引数の型である)object と(list.ToArray()の型である)string の間に継承関係がないためコンパイルできないのだ。これはhttp://www.hyuki.com/d/200508.html#i20050819104841の問題であり、完全に解決することは不可能である。仕方がないので、次のように書いてAddRangeできた。
List<string> list = ...; comboBox1.Items.AddRange(list.ConvertAll<object>(delegate (string x) { return x as object;}).ToArray());
めでたしめでたし。匿名delegate最強。
じゃない。object []を要求するクラスがたくさんあることはMicrosoftにはわかりきってるはずなんだから、Array