title: C# lock with LINQ query
body: <p>Is it necessary to lock LINQ statements as follows? If omitting the lock, any exceptions will be countered when multiple threads execute it concurrently?</p>
  
  <pre><code>lock (syncKey)
  {
      return (from keyValue in dictionary
              where keyValue.Key &gt; versionNumber
              select keyValue.Value).ToList();
  }
  </code></pre>
  
  <p>PS: <strong>Writer</strong> threads do exist to mutate the dictionary.</p>