I think the guys in the .NET Framework team has this thing about vanity. Yeah! I call it code vanity. Not that its bad.. but its just funny how code has been getting beautiful. more beautiful and even more beautiful as the evolution of .NET goes forward. And it's a great thing too!
Here's a look on how my code changed since i started working with .NET 2.0.
When i first started dealing with .NET 2.0. My iterating-thru-a-list code looked like this:
//create a new list of numbers(int)List<int> numberList = new List<int>();//create a for loop that would iterate from 1 to 10for (int number = 1; number <= 10; number++){ // add the number to our list numberList.Add(number);}//iterate thru the list and print the contents of our listforeach (int number in numberList){ //print the number Console.WriteLine(number);}
This is a common code structure for people moving from the old framework to the newer one. There's nothing wrong with the code but it seems that I am not using the full capability of what .NET 2.0 has to offer.
After several weeks I discovered Action delegates and List.ForEach and boy the code that i started writing looked even sexier!
//create a new list of numbers(int)List<int> numberList = new List<int>();//create a for loop that would iterate from 1 to 10for (int number = 1; number <= 10; number++){ // add the number to our list numberList.Add(number);}//Iterate thru the list using an Action delegatenumberList.ForEach( delegate(int number) { //print the number Console.WriteLine(number); } );
Ain't that sweet? Now my code looks cleaner, meaner and sexier :P
But then .NET 3.0 came and just when i thought good code was good enough the brainiacs from Redmond introduced another way of making code better. Lambda Expressions.
//create a new list of numbers(int)List<int> numberList = new List<int>(); //add thew sequence of numbersnumberList.AddRange(Sequence.Range(1, 10)); //iterate and printnumberList.ForEach(i => Console.WriteLine(i) );
Oh Ma! When will this code vanity end?(just kidding) :P
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.