title: Faster way to get range from 2-dimensional array, than assigning elements one by one to another array
body: <p>For example I have some array: <code>byte[,] arr = new byte[4800, 3000];</code> and I need to get part of that array starting from 512, 600 and ending at 1024, 1200.</p>
  
  <p>How I can do that fast?</p>
  
  <p>All I can think of is this:</p>
  
  <pre><code>int start_x = 512, start_y = 600;
  int end_x = 1024, end_y = 1200;
  
  byte[,] new_arr = byte[end_x - start_x, end_y - start_y];
  
  for (int x = start_x; x &lt; end_x; x++)
      for (int y = start_y; y &lt; end_y; y++)
          new_arr[x - start_x, y - start_y] = arr[x, y];
  </code></pre>
  
  <p>but that's a lot of assign operations. Is there any faster way?</p>