使用String.Format时的exception“索引(从零开始)必须大于或等于零且小于参数列表的大小。”

我有一个arrays

ArrayList array = new ArrayList(); array.Add("a"); array.Add("b"); array.Add("c"); 

我有一个字符串变量refFormat ,其格式如下。

 string refFormat = "{2} {0}"; 

我正在尝试使用此格式从数组中获取一串值。 以下是我写的内容。

 string newStr = String.Format(refFormat,array.ToArray()); 

当我尝试这样做时,我得到以下exception。

索引(从零开始)必须大于或等于零且小于参数列表的大小。

我知道这个问题听起来很重复,但我怀疑的是如何从数组中选择其索引是以20格式指定的 。 请帮忙..

编辑 :对不起提出错误的问题。 我正在使用arraylist而不是字符串数组我正在尝试相同的。 尽管使用ToArray()将其转换为数组,我仍然得到exception。 我哪里错了? 而且我也不能在这里使用List而不是arraylist,因为数组包含不同类型的数据。 请帮帮我..

作为参考,这里也是我的工作代码:

 string[] array = new string[] { "a", "b", "c", "d" }; string refFormat = "{2} {0}"; string newStr = String.Format(refFormat, array); Console.WriteLine(newStr); 

运行上面的代码时没有遇到错误。

您没有正确提供参数,需要将其编入索引为{0} {1}等等

 String.Format(refFormat,array[2],array[0]);