title: Copy list of items to another list
body: <p>I am trying to copy the list of items from list1 to another list list2.  I'm able to do that.  However I don't want the changes made in list2 tobe reflected in list1.</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {
          List&lt;MyClass&gt; list1 = new List&lt;MyClass&gt;();
          list1.Add(new MyClass(){ID = 1, Name = "name1"});
          list1.Add(new MyClass(){ID = 2, Name = "name2"});
          list1.Add(new MyClass(){ID = 3, Name = "name3"});
  
          //Copy items from list1 to list2
          List&lt;MyClass&gt; list2 = new List&lt;MyClass&gt;(list1);
  
          list1.ForEach(x =&gt; Console.WriteLine(x.Name));   //It shows the name as added
  
          //Empty items in list2
          list2.ForEach(x =&gt; x.Name = string.Empty);
  
          //Print items in list1
          list1.ForEach(x =&gt; Console.WriteLine(x.Name));   //It shows the name is empty
          Console.ReadKey();
      }
  }
  
  class MyClass
  {
      private int id;
  
      public int ID
      {
          get { return id; }
          set { id = value; }
      }
  
      private string name;
  
      public string Name
      {
          get { return name; }
          set { name = value; }
      }
  }
  </code></pre>
  
  <p>I hope there should be an easy way.</p>