What?
How to create a generic list with anonymous types in C# 3.X
Why?
Anonymous Types is a new feature that is introduced with C# 3.0
Anonymous types are particularly useful when querying and transforming data with LINQ.
So what’s the difference between a normal type and an anonymous type?
First and most important: the anonymous type has no type name.
In C# 2.0 and earlier, we had to give every type a name explicitly.
For example,
Even better, in C# 3.X, we can use anonymous types and write the following:
How?
How to create a generic list of anonymous types given a single instance of an anonymous type?
Creating a given list of types is easy.
Using a "list factory", this is possible.
How to create a generic list with anonymous types in C# 3.X
Why?
Anonymous Types is a new feature that is introduced with C# 3.0
Anonymous types are particularly useful when querying and transforming data with LINQ.
So what’s the difference between a normal type and an anonymous type?
First and most important: the anonymous type has no type name.
In C# 2.0 and earlier, we had to give every type a name explicitly.
For example,
class Person { private StringBuilder _personData; public StringBuilder PersonData { get { return _personData; } set { _personData = value; } } private String _personName; public String PersonName { get { return _personName; } set { _personName = value; } } }In C# 3.X, we can use automatic properties and write the following:
class Person { public StringBuilder PersonData { get; set; } public String PersonName { get; set; } }
Even better, in C# 3.X, we can use anonymous types and write the following:
var person = new Person { PersonData = new StringBuilder(), PersonName = String.Empty };So far so good.
How?
How to create a generic list of anonymous types given a single instance of an anonymous type?
Creating a given list of types is easy.
List<Person> persons = new List<Person>(); persons.Add(new Person{ PersonData = new StringBuilder(), PersonName = String.Empty });So how to create a generic list with anonymous types?
Using a "list factory", this is possible.
var Person = new { PersonData = new StringBuilder(), PersonName = String.Empty }; var persons = MakeList(Person); persons.Add(new { PersonData = new StringBuilder(), PersonName = "Chaitu" }); persons.Add(new { PersonData = new StringBuilder(), PersonName = "Scott" }); public static List<T> MakeList<T>(T itemOftype) { List<T> newList = new List<T>(); return newList; }
No comments:
Post a Comment