将IEnumerable转换为ArrayList O(N)或O(1)?

vul*_*ino 4 c# performance casting arraylist

当我这样做时:

private IEnumerable objects;
ArrayList castedObjects = (ArrayList)objects;
Run Code Online (Sandbox Code Playgroud)

这是一个"直接"强制转换,还是通过内部方法(可能是遍历所有元素)将枚举转换为ArrayList?

Vla*_*lad 5

这是一个"直接"强制转换(如果底层对象实际上是一个实例ArrayList),或者你会得到一个异常.ArrayList在"场景后面" 没有隐式创建对象.