Массивы и списки индексируются 0 в C #. Это означает, что первый элемент имеет индекс 0
, а последний элемент - индекс items.Count - 1
. Я думаю, ваш код был бы более понятным, если бы цикл for начинался с 0
:
for (int i = 0; i < items.Count; i++)
{
Console.WriteLine("{0}. {1}", i + 1, (string)items[i]);
}
Индексатор ArrayList
имеет тип возврата object
, поэтому, если ваш список содержит строки, вы обычно захотите привести их к строке при извлечении объекта из ArrayList
. Однако в этом конкретном случае нет необходимости выполнять приведение, поскольку перегрузка WriteLine
, которую вы вызываете, имеет подпись void WriteLine(string, object, object)
. Хорошо просто передать object
этому методу. Внутренне метод WriteLine
вызовет ToString
для вашего объекта.
Вам также следует рассмотреть возможность использования общего класса List<T>
вместо ArrayList
. Класс ArrayList
был полезен при первом выпуске .NET, но новый код в .NET 2.0 или выше должен использовать List<T>
.