у меня есть массив
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 здесь, так как массив содержит данные другого типа. Пожалуйста, помогите мне..
string newStr = String.Format(refFormat,array);
? Это не должно вызывать никаких исключений на основе вашего кода, аnewStr
будетc a
. - person Soner Gönül   schedule 31.12.2014string
есть следующий доступный методpublic static string Format(string format, params object[] args)
. Таким образом, вопрос заключается в использовании допустимого метода, т.е. передачи массива в качестве второго параметра. - person Jason Evans   schedule 31.12.2014ArrayList
попадает в другую перегрузку, формат (строка, объект), я полагаю. Это также причина, по которой всем рекомендуется указывать фактический код в вопросе. - person Andrei   schedule 31.12.2014ArrayList
? Если вы настаиваете, вы можете скопироватьArrayList
в новый массив с методом экземпляра.ToArray()
. - person Jeppe Stig Nielsen   schedule 31.12.2014ArrayList
перед использованиемString.Format()
... поэтому я предлагаю проверить размер (например,if(array.Count >= 3){...}
) перед использованиемString.Format()
. - person Jaider   schedule 24.08.2015