AOJ で string.Join の第2引数に int[] を渡すとコンパイルエラーになる
AOJ で C# コードのコンパイルエラーに関するメモです。
AOJ の mono のバージョンのためか、string.Join
の第2に引数に int[] を渡すとコンパイルエラーになるようです。その回避方法です。
// OK static void Display1(int[] xs) { string[] ss = xs.Select(e => e.ToString()).ToArray(); Console.WriteLine(string.Join(" ", ss)); } // NG: コンパイルエラー // error CS1502: The best overloaded method match for `string.Join(string, string[])' has some invalid arguments // static void Display2(int[] xs) { // Console.WriteLine(string.Join(" ", xs)); // } // OK: string[] にキャストするとコンパイルできる static void Display3(int[] xs) { Console.WriteLine(string.Join(" ", (string[])xs.Select(e => e.ToString()).ToArray())); }
ちなみに、mono 4.0.1 だと上記のコードはいずれも問題なくコンパイルできます。