You can pass an explicit array for the params argument, but it must have a match type. string.Format has several overloads, of which we are interested in the following two:
string.Format(string, params object[]) string.Format(string, object)
In your case, handling int[] as object is the only conversion that works, since int[] cannot be implicitly (or explicitly) converted to object[] , so string.Format sees four placeholders, but only one argument. You will need to declare your array of the correct type.
var place = new object[] {1,2,3,4};
Joey
source share