Why a {get;private set} List's content can be changed? : <p>For example:</p>

<pre><code>class Foo {
  List&lt;Object&gt; myList {get;private set;}
}
</code></pre>

<p>then in other script, I can still do this</p>

<pre><code>foo.myList.Add(new Object());
</code></pre>

<p>I know it is just allowed but why? what is the design logic behind this? If you can add/remove stuff from the list then it is really not a <em>private</em> set.</p>
