Attualmente in LINQ, i seguenti compila e funziona bene:Utilizzando LINQ, è possibile generare un oggetto dinamico da un'istruzione Select? Se é cosi, come?
var listOfFoo = myData.Select(x => new FooModel{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
public class FooModel{
public string someProperty { get; set; };
public string someOtherProperty { get; set; };
}
Tuttavia, negli ultimi versioni di .NET/C# hanno ampliato il ruolo di oggetti dinamici come il ExpandoObject
e mi chiedo se non v'è un modo per fare fondamentalmente questo:
var listOfFoo = myData.Select(x => new ExpandoObject{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
Ovviamente, ho già provato il codice di cui sopra, senza successo, ma sembra che mi manca qualcosa.
D'oh! Uomo mi sento stupido. Sì, è stato facile. Può accettare la risposta in 6 minuti. Grazie! –
@MatthewPatrickCashatt Si noti che non c'è nulla di dinamico nell'oggetto. L'oggetto qui definito è staticamente digitato e anche immutabile. Ora, se questo è adatto alle tue esigenze, è grandioso, ma se davvero volevi ciò che hai chiesto nella domanda, allora non è così. – Servy
Grazie, @Servy. Apprezzo anche la tua risposta. Ciò che mi confonde in merito al tuo commento, tuttavia, è che l'approccio di @ d_r_w continua a consentirmi di aggiungere proprietà dinamiche all'oggetto. Ad esempio, 'foreach (elemento dinamico in listOfFoo {item.someNewProperty =" bar "}' funziona bene. Cosa mi manca? –