Обычно это должно работать:
(int[])list.GetRange(0, 2).ToArray(typeof(int));
Поскольку GetRange просто возвращает новый ArrayList.
Вы уверены, что ваш ArrayList содержит только целые числа и ничего больше?
Я не могу проверить это в .NET 1.1, но я полагаю, что:
- ваш arraylist содержит элементы, которые имеют некоторый другой тип, чем int.
- метод ArrayList.Adapter является источником проблемы.
Кроме того, почему бы вам не инициализировать ArrayList следующим образом:
ArrayList l = new ArrayList ( new int[] {0, 1, 2, 3, 4, 5});