title: Best way to create instance of child object from parent object
body: <p>I'm creating a child object from a parent object. So the scenario is that I have an object and a child object which adds a distance property for scenarios where I want to search. I've chosen to use inheritance as my UI works equivalently with either a search object or a list of objects not the result of a location search. So in this case inheritance seems a sensible choice.</p>
  <p>As present I need to generate a new object <code>MyObjectSearch</code> from an instance of <code>MyObject</code>. At present I'm doing this in the constructor manually by setting properties one by one. I could use reflection but this would be slow. Is there a better way of achieving this kind of object enhancement?</p>
  <p>Hopefully my code below illustrates the scenario.</p>
  <pre><code>public class MyObject {
  
      // Some properties and a location.
  }
  
  public class MyObjectSearch : MyObject {
  
      public double Distance { get; set; }
      
      public MyObjectSearch(MyObject obj) {
           base.Prop1 = obj.Prop1;
           base.Prop2 = obj.Prop2;
      }
  }
  </code></pre>
  <p>And my search function:</p>
  <pre><code>public List&lt;MyObjectSearch&gt; DoSearch(Location loc) { 
    var myObjectSearchList = new List&lt;MyObjectSearch&gt;();       
  
     foreach (var object in myObjectList) {
         var distance = getDistance();
         var myObjectSearch = new MyObjectSearch(object);
         myObjectSearch.Distance = distance;
         myObjectSearchList.add(myObjectSearch);
     } 
     return myObjectSearchList;
  }
  </code></pre>