I have a type with implicit conversion operators to most base types and tried to use .Cast on a collection of this type, which failed. As I dug
I checked the MSDN page for Cast, and it is an extension method to types that implement (the non-generic) IEnumerable interface.
It can convert a collection class (such as ArrayList) which doesn't implement IEnumerable to one that does, allowing the richer operations (such as Select) to be performed against it.