title: Return collection as read-only
body: <p>I have an object in a multi-threaded environment that maintains a collection of information, e.g.:</p>
  
  <pre><code>public IList&lt;string&gt; Data 
  {
      get 
      {
          return data;
      }
  }
  </code></pre>
  
  <p>I currently have <code>return data;</code> wrapped by a <code>ReaderWriterLockSlim</code> to protect the collection from sharing violations.  However, to be doubly sure, I'd like to return the collection as read-only, so that the calling code is unable to make changes to the collection, only view what's already there.  Is this at all possible?  </p>