Desidero proiettare una raccolta da un tipo ( Something
) a un altro tipo ( SomethingElse
). Sì, questa è una domanda molto aperta, ma quale delle due opzioni seguenti preferisci?
Creazione di una nuova istanza utilizzando new
:
var result = query.Select(something => new SomethingElse(something));
Utilizzo di una factory:
var result = query.Select(something => SomethingElse.FromSomething(something));
Quando penso a una proiezione, generalmente la considero una conversione . L'utilizzo di new
mi dà l'idea che sto creando nuovi oggetti durante una conversione, il che non sembra giusto. Semanticamente, SomethingElse.FromSomething()
si adatta sicuramente meglio. Anche se la seconda opzione richiede un codice addizionale per impostare una fabbrica, che potrebbe diventare inutilmente compulsivo.