Die anonyme Typen gehören zu den neuen C#3.0 Erweiterungen. Nun wurde ich gefragt, ob es möglich ist aus anonymen Typen eine generische Liste zu erstellen. Zwar habe ich die Frage im ersten Moment mit “Natürlich!” beantwortet, merkte dann aber doch recht schnell das ich nicht genau wusste wie die Anforderung umzusetzen ist.
var customer = new { Firstname = "Kai", LastName = "Gloth" }; List list = new List
Schlussendlich bin ich mit Hilfe von IntelliSense und ein wenig ausprobieren auf die Lösung gekommen.
var customer = new { Firstname = "Kai", LastName = "Gloth" }; var customerList = (new[] { customer }).ToList(); customerList.Add(new { Firstname = "Olli", LastName = "Seitenschneider"});
Obwohl das Problem mit obigem Code gelöst ist, ist die Umsetzung doch ein wenig gewöhnungsbedürftig.
Interessantes Problem!
Das ganze könnte man so noch etwas aufpolieren:
public static class ListUtil {
public static List{T} FromPrototype{T}(T prototype) {
return new List{T}();
}
}
var list = ListUtil.FromPrototype(new {
FirstName = default(string),
LastName = default(string)
});
list.Add(new {FirstName = “Andre”, LastName = “Loker”});
P.S.: deine Blogsoftware mag es nicht, wenn ich spitze Klammern benutze, deshalb das {T}