Why are the lists list1Instance and p in the Main method of the below code pointing to the same collection?
list1Instance
p
Main
class Person
First of all, your List in your class is public, so there's nothing stopping anyone from directly accessing the list itself.
Secondly, I would implement IEnumerable and return this in my GetEnumerator Method
return l1.AsReadOnly().GetEnumerator();