title: C# select doesn't change value of array
body: <p>Can anyone explain to me why this code changes Matrix internal array:</p>
  
  <pre><code>    public Labyrinth(int width, int height)
      {
          baseMatrix = new char[width][];
  
          for (int i = 0; i&lt;baseMatrix.Length; ++i)
          {
              baseMatrix[i] = new char[height];
          }
  
          mod(baseMatrix[0]);
      }
  
      void mod(char[] x)
      {
          x[0] = 'a';
      }
  </code></pre>
  
  <p>and this doesn't change anything:</p>
  
  <pre><code>    public Labyrinth(int width, int height)
      {
          baseMatrix = new char[width][];
  
          for (int i = 0; i&lt;baseMatrix.Length; ++i)
          {
              baseMatrix[i] = new char[height];
          }
  
          baseMatrix.Select(x =&gt; x[0] = 'a');
       }
  </code></pre>
  
  <p>I don't understand, both the select and the function take a char[] element, this i believe is passed for value, then x[0] should be modified in both case, where i'm wrong?</p>