Вам нужно будет присоединиться к ним вручную с помощью string.Join
или чего-то подобного
Объединяет элементы указанного массива или членов
коллекции, используя указанный разделитель между каждым элементом или
член.
Console.WriteLine(string.Join(",",myArray.ToArray()));
Причина, по которой ваша версия не работает, заключается в том, что Console.Writeline
имеет кучу перегрузок для разных типов, однако возвращается к WriteLine(Object)
, когда не может найти конкретное разрешение соответствует
Исходный код WriteLine(Object value)
выглядит следующим образом (который можно найти здесь )
public virtual void WriteLine(Object value) {
if (value==null) {
WriteLine();
}
else {
// Call WriteLine(value.ToString), not Write(Object), WriteLine().
// This makes calls to WriteLine(Object) atomic.
IFormattable f = value as IFormattable;
if (f != null)
WriteLine(f.ToString(null, FormatProvider));
else
WriteLine(value.ToString());
}
}
Обратите внимание, как он звонит value.ToString()
?
Метод Object.ToString
Возвращает строку, которая представляет текущий объект.
Примечания
Object.ToString является основным методом форматирования в .NET Framework.
Он преобразует объект в его строковое представление так, чтобы он
подходит для отображения.
У ArrayList
нет перегрузки ToString (), которая могла бы предвидеть то, что вы хотите показать, поэтому он полагается на значение по умолчанию.
Метод Object.ToString () по умолчанию
Реализация по умолчанию метода ToString возвращает полностью
квалифицированное название типа объекта
Что подводит меня к следующему пункту, не используйте ArrayList
, используйте универсальный массив int[]
или List<int>
, вы найдете его гораздо более увлекательным и полезным ( веселый уровень 100 )