If you've called ToList()
on an IEnumerable<T>
, the return type will be a List<T>
. If the type of your variable were List<T>
rather than IEnumerable<T>
, you would be able to do whatever you wanted to the list you received, including adding items to it, just like you could do with any other list. Note that the newly made list would be "detached" from the original IEnumerable<T>
, so that adding, removing, rearranging, or replacing items in one would not affect the other. Note also, however, that a list of mutable-reference-type items does not hold items, but merely identifies them. If one has an IEnumerable<Car> myCars
, and the third item is "Car#24601", then myCars.ToList()[2].Color = CarColors.Red;
then the third item in the original list (i.e. Car #24601) will be painted red.