Obecnie w LINQ następujące kompiluje i działa dobrze:Korzystając z LINQ, możliwe jest wyprowadzanie dynamicznego obiektu z instrukcji Select? Jeśli tak to jak?
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; };
}
Jednak w ciągu ostatnich kilku wersjach .NET/C# Rozszerzyliśmy rolę dynamicznych obiektów takich jak ExpandoObject
i zastanawiam się, czy istnieje sposób w zasadzie to zrobić:
var listOfFoo = myData.Select(x => new ExpandoObject{
someProperty = x.prop1,
someOtherProperty = x.prop2
});
Oczywiście, ja już próbowałem powyższy kod bez sukcesu, ale wydaje się, że czegoś mi brakuje.
D'oh! Człowieku, czuję się głupio. Tak, to było takie łatwe. Potrafi przyjąć odpowiedź w 6 minut. Dzięki! –
@MatthewPatrickCashatt Zauważ, że obiekt nie ma nic dynamicznego. Obiekt tutaj zdefiniowany jest statycznie wpisany, a nawet niezmienny. Teraz, jeśli jest to odpowiednie dla twoich potrzeb, to świetnie, ale jeśli naprawdę chciałeś tego, o co prosiłeś w pytaniu, to nie o to chodzi. – Servy
Dzięki, @Servy. Doceniam również twoją odpowiedź. Jednak w odniesieniu do twojego komentarza jest to mylące, ponieważ podejście @ d_r_w nadal pozwala mi dodawać właściwości dynamiczne do obiektu. Na przykład: foreach (dynamiczna pozycja w listOfFoo {item.someNewProperty = "bar"} 'działa dobrze.Jakie brakuje? –