title: Duplicate Object and working with Duplicate without changing Original
body: <p>Assuming I have an Object ItemVO in which there a bunch of properties already assigned.
  eg: </p>
  
  <pre><code>ItemVO originalItemVO = new ItemVO();
  originalItemVO.ItemId = 1;
  originalItemVO.ItemCategory = "ORIGINAL";
  </code></pre>
  
  <p>I would like to create another duplicate by using :</p>
  
  <pre><code>duplicateItemVO = originalItemVO;
  </code></pre>
  
  <p>and then use the duplicateItemVO and alter its' properties, WITHOUT changing the originalItemVO:</p>
  
  <pre><code>// This also change the originalItemVO.ItemCategory which I do not want.
  duplicateItemVO.ItemCategory = "DUPLICATE" 
  </code></pre>
  
  <p>How can I achieve this, without changing the class ItemVO ?</p>
  
  <p>Thanks</p>
  
  <pre><code>public class ItemVO     
  {
      public ItemVO()
      {
          ItemId = "";
          ItemCategory = "";
      }
  
      public string ItemId { get; set; }
      public string ItemCategory { get; set; }
  }
  </code></pre>