Jak mogę utworzyć nowy List<T>
gdzie T jest dynamiczny Rodzaj obiektu.Jak utworzyć listę z dynamicznym typu obiektu
mam
dynamic DyObj = new ExpandoObject();
if (condition1)
{
DyObj.Required = true;
DyObj.Message = "This is the first property being accessed through dynamic object";
}
if (condition2)
{
DyObj.Required = false;
DyObj.Message = "This is the second property....";
}
// and so on...
Chcę utworzyć List<Dyobj>
i przypisać wszystkie komunikaty Dyobj
oparte na warunkach.
Kontynuacja dane z komentarzy:
var DyObjectsList = new List<dynamic>;
dynamic DyObj = new ExpandoObject();
if (condition1) {
DyObj.Required = true;
DyObj.Message = "Message 1";
DyObjectsList.Add(DyObj);
}
if (condition2) {
DyObj.Required = false;
DyObj.Message = "Message 2";
DyObjectsList.Add(DyObj);
}
ciekawe wszystkie obiekty w DyObjectsList są zastępowane wartościami ostatniego przydzielonego obiektu.
@Krik dziękuję. Oto co zrobiłem. var DyObjectsList = nowa lista; dynamic DyObj = new ExpandoObject(); if (condition1) {DyObj.Required = true; DyObj.Message = "Message 1"; DyObjectsList .Add (DyObj); } if (condition2) {DyObj.Required = false; DyObj.Message = "Message 2"; DyObjectsList .Add (DyObj); } co ciekawe wszystkie obiekty w obiekcie DyObjectsList są zastępowane wartościami ostatniego przypisanego obiektu. –
BumbleBee
@BumbleBee, to dlatego, że nadpisujesz wartości swojego obiektu. Tworzysz ** jedną ** instancję swojego 'DyObj' i kontynuujesz przypisywanie wartości do * tej samej instancji * dwukrotnie.Powinieneś przenieść linię 'dynamic DyObj = new ExpandoObject();' wewnątrz twoich bloków if, a powinieneś skończyć z dwiema kopiami tej linii, ponieważ chcesz dodać dwie oddzielne instancje. –