title: Is this c# usage of List<> thread safe?
body: <p>I have C# .Net 4 code which is adding to a List&lt;> inside a Parallel.For.
  I cant find a definite answer to if this is threadsafe or not.
  If it is unsafe what are the alternatives?</p>
  
  <pre><code>    static List&lt;int&gt; Calculate(List&lt;string[]&gt; numbers)
      {
             List&lt;int&gt; sums = new List&lt;int&gt;();
  
  
              Parallel.ForEach(numbers,
              (nums) =&gt;
              {
                  int sum = 0;
                  for (int i = 0; i &lt; nums.Length; i++)
                       sum += Convert.ToInt32( nums[i]);
  
                  // is this thread safe or not???
                  sums.Add(sum);
              });
  
              sums.Sort();
              return sums;
      }
  </code></pre>