as you can find here: List (from T). AsReadOnly Method
To prevent any changes to List (Of T), output only List (Of T) through this shell.
A read-only collection is simply a collection with a shell, which prevents the collection from being modified; therefore, if changes are made to the main collection, the read-only collection reflects these changes.
This method is an O (1) operation.
since in the last statement they say that if you change the original collection, the readonly assembly will reflect these changes, I believe that this shell does not reassign any object, but does what you also described in your question.
source share