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

时间:2014-12-31 13:15:30

标签: c# arrays string.format

我有一个数组

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());

我在尝试这样做时遇到以下异常。

  

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

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

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

2 个答案:

答案 0 :(得分:5)

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

string[] array = new string[] { "a", "b", "c", "d" };

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

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

Console.WriteLine(newStr);

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

答案 1 :(得分:0)

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

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