title: Is Array.Copy() faster than for loop, for 2D arrays?
body: <p>I recently changed</p>
  
  <pre><code>        this.FieldValues = new object[2, fieldValues.GetUpperBound(1) + 1];
          for (int i = 0; i &lt; FieldCount; i++)            
          {
              this.FieldValues[Current, i] = fieldValues[Current, i];
              this.FieldValues[Original, i] = fieldValues[Original, i];
          }
  </code></pre>
  
  <p>to</p>
  
  <pre><code>        FieldValues = new object[2, fieldValues.GetLength(1)];
          Array.Copy(fieldValues, FieldValues, FieldValues.Length); 
  </code></pre>
  
  <p>Where the values of Current and Original are constants 0 and 1 respectively. FieldValues is a field and fieldValues is a parameter.</p>
  
  <p>In the place I was using it, I found the Array.Copy() version to be faster. But another developer says he timed the for-loop against Array.Copy() in a standalone program and found the for-loop faster.</p>
  
  <p>Is it possible that Array.Copy() is not really faster? I thought it was supposed to be super-optimised!</p>