title: Easiest way of duplicating objects of different types
body: <p>So lets say I have an object</p>
  
  <pre><code>class MyItem
  {
       public string Name {get; set;}
       public string Description {get; set;}
  }
  </code></pre>
  
  <p>I want to create a ViewModel</p>
  
  <pre><code>class MyItemViewModel
  {
       public string Name {get; set;}
       public string Description {get; set;}
       public string Username {get; set;}
  }
  </code></pre>
  
  <p>I would like to on the controller get an object of type MyItem and automatically populate the ViewModel. With the values contained within MyItem (ie if it has a property called Name, automatically fill it out). </p>
  
  <p>What I am trying to avoid is a list of <code>Model.Name = Item.Name</code> rows. MyItemViewModel will also have different attributes and display values so I cannot simply embed MyItem within the View Model.</p>
  
  <p>Is there a clean programmatical way of duplicating attributes of the same name and type between objects or am I stuck by doing it by hand?  </p>