title: Make dictionary read only in C#
body: <p>I have a <code>Dictionary&lt;string, List&lt;string&gt;&gt;</code> and would like to expose the member as read only. I see that I can return it as a <code>IReadOnlyDictionary&lt;string, List&lt;string&gt;&gt;</code>, but I can't figure out how to return it as an <code>IReadOnlyDictionary&lt;string, IReadOnlyList&lt;string&gt;&gt;</code>.</p>
  
  <p>Is there a way to do this? In c++ I'd just be using const, but C# doesn't have that.</p>
  
  <p>Note that simply using a <code>IReadOnlyDictionary</code> does not help in this case, because I want the values to be read only as well. It appears the only way to do this is build another IReadOnlyDictionary, and add IReadOnlyList to them.</p>
  
  <p>Another option, which I wouldn't be thrilled with, would be to create wrapper which implements the interface IReadOnlyDictionary>, and have it hold a copy of the original instance, but that seems overkill.</p>