Creating array's dynamically
Bit of a simple one this, but I didn't know about it.
One of my favourite .NET tricks is using ArrayList.ToArray(Type objectType). For those who don't know, this creates a strong array of objects for a given type. So, if I chuck a load of objects into an ArrayList (say I'm doing some processing) and I want to pass the contents to some other method as an array, I use the ToArray(Type objectType) to get a strongly-types array, rather than a weak object[] array.
The helper function that ToArray(Type objectType) is using under the hood is Array.CreateInstance. This version of CreateInstance (as opposed to System.Object.CreateInstance) returns a strong array of a given type and of a give size. Pretty helpful.