Najlepszy sposób na utworzenie instancji obiektu podrzędnego z obiektu nadrzędnego

Tworzę obiekt podrzędny z obiektu nadrzędnego. Scenariusz polega na tym, że mam obiekt i obiekt podrzędny, który dodaje właściwość odległości dla scenariuszy, w których chcę szukać. Wybrałem użycie dziedziczenia, ponieważ mój interfejs użytkownika działa podobnie z obiektem wyszukiwania lub listą obiektów, które nie są wynikiem wyszukiwania lokalizacji. Więc w tym przypadku dziedziczenie wydaje się rozsądnym wyborem.

Jako obecny muszę wygenerować nowy obiektMyObjectSearch z instancjiMyObject. Obecnie robię to ręcznie w konstruktorze, ustawiając właściwości pojedynczo. Mógłbym użyć odbicia, ale byłoby to powolne. Czy istnieje lepszy sposób na osiągnięcie tego rodzaju ulepszenia obiektu?

Mam nadzieję, że poniższy kod ilustruje scenariusz.

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;
    }
}

I moja funkcja wyszukiwania:

public List<MyObjectSearch> DoSearch(Location loc) { 
  var myObjectSearchList = new List<MyObjectSearch>();       

   foreach (var object in myObjectList) {
       var distance = getDistance();
       var myObjectSearch = new MyObjectSearch(object);
       myObjectSearch.Distance = distance;
       myObjectSearchList.add(myObjectSearch);
   } 
   return myObjectSearchList;

}

questionAnswers(7)

yourAnswerToTheQuestion