Это прямой актерский состав. Это будет работать, только если объект уже имеет значение ArrayList
, например:
IEnumerable objects = new ArrayList();
ArrayList castedObjects = (ArrayList)objects;
Если объект не ArrayList
, а какой-то другой объект, который реализует IEnumerable
, приведение завершится неудачей.
Вы можете создать ArrayList
из ICollection
, например:
ICollection objects = new string[] { "a", "b" };
ArrayList castedObjects = new ArrayList(objects);
Это перебирает коллекцию и копирует элементы в ArrayList
, так что это операция O (n).
Как правило, вам вообще не следует использовать класс ArrayList
, а общий класс List<T>
, который предлагает строгую типизацию.