In this article we will discuss some of the very useful features introduced in C# 3.0What is Object Initializers?Object Initializers let us create an object of a class and assign values to any accessible fields or properties of it at the same time; it's not necessary to explicitly invoke a constructor.Let's see an Example; see:
public class Car
{
public string Name
get;
set;
}
public Color Color
In C# 2.0 we could have done that like this:
public static void Main()
Car myCar = new Car();
myCar.Name = "Chevrolet Corvette";
myCar.Color = Color.Red;
}But from 3.0 there is one more way to do the same thing:
Car myCar = new Car()
Name = "Chevrolet Corvette",
Color = Color.Red
};
What is Collection Initializers?Just like Object Intializers, Collection Inializers let us create an instance of a collection and at the same time we can provide values with it.Example:List<int> MyInts=new List<int>(){1,2,3,5,6,7};We can use object intializers here if we want to initialize a collection of objects; see:List<Customer> MyCustomers =new List<Customer>(){new Customer(){CustomerName="Mr.A",Address="Mumbai"},new Customer(){CustomerName="Mr.B",Address="Pune"}, new Customer(){CustomerName="Mr.C",Address="Banglore"}};Both Object Intializers and Collection Initializers are easy to use, simple and compact.Anonymous TypesAnonymous types are types which behave just like normal class,the only difference is:
Let's see and an example of how it looks.To create an Anonymous type we need Object Initializers, as in:var ExampleObject=new{Name="Sukesh Marla",Designation="Software Developer"};Console.WriteLine(ExampleObject. Name);Anonymous Types with LINQAssume we have a list of customers with 100 different properties (like Name, Point, Address…..) and we are interested only in their Name and points.One thing we can do here is fire a LINQ query and extract the necessary data.Normally in LINQ when we want only part of the information from each object in a sequence we use a Select clause and store temporary results into Anonymous types.Example:Var CustomerObject=Customers.Select(x=>new {CustomerName=x.CustName,Points=x.Point});So that's it. I hope everyone begins using this features if they haven't already.Hope you enjoyed. I hope to see some good comments.