GetEnumerator
is called when the instance is being enumerated. Usually, this is at the start of a foreach
clause, and very often in LINQ.
In the debugger, this is also called when you expand the results view on the instance, as you've just found out. It even warns you it will do this. So no, it doesn't get called when you change the property - it only gets called when you start reading the enumerable again - which you're doing in the debugger itself.