title: How to call Parallel.ForEach with a multidimensional array
body: <p>I'm having a little trouble figuring out how to call the <code>Parallel.ForEach</code> with a 2D array of strings:</p>
  
  <pre><code>string[,] board = new string[,]{
          {"A", "B", "C", "D", "E" },
          {"F", "G", "H", "I", "J"},
          {"K", "L", "M", "N", "O"},
          {"0", "1", "2", "3", "4"}};
  
  Parallel.ForEach(board, row =&gt;
      {
          for (int i = 0; i &lt; row.Length; ++i)
          {
              // find all valid sequences
          }
      });
  </code></pre>
  
  <p>If I don't specify the type explicitly I get the following error:</p>
  
  <blockquote>
    <p>The type arguments for method
    'System.Threading.Tasks.Parallel.ForEach(System.Collections.Generic.IEnumerable,
    System.Action)' cannot be
    inferred from the usage. Try
    specifying the type arguments
    explicitly.</p>
  </blockquote>
  
  <p>What's the proper way to specify the type arguments explicitly?</p>