title: Copying list to new list still change the old list's value
body: <p>I have taken a list into property:</p>
  
  <pre><code>public List&lt;Pair&gt; PairList {get;set;}
  </code></pre>
  
  <p>and its value getting set from some functions and then I have copied this list to another list:</p>
  
  <pre><code>List&lt;Pair&gt; newPairList =new List&lt;Pair&gt;(PairList);
  </code></pre>
  
  <p>I have used newPairList in some function which sets some value in newPairList</p>
  
  <pre><code>somefunc(newPairList)
  {
   newPairList.stringVal ="xxxxx";
  }
  
  public class Pair
  {
      public int intVal;
      public string key;
      public string stringVal;
      public string ValType;
  
      public Pair(string key, int val);
      public Pair(string key, string val);
  
  }
  </code></pre>
  
  <p>Actual problem:
  If anything gets updated in newPairList, it will automatically gets updated in PairList. how to prevent main property <strong>PairList</strong> not getting updated?</p>