Given your example using an ArrayList you would incur a boxing/unboxing penalty everytime to stored or accessed the values since ArrayList uses object. Using a generic collection, say List<double> you would not have this issue, with the additional benefit of being typesafe.
The best book that I can think of that is primarily for C# and is the first place I look for all my questions in the language is: Sams Teach Yourself Visual Studio 2003 in 21 Days (I am sure their is a 2005 version). The book covers both C# and Visual Basic and gives you a complete outline of the features of various class libraries. An excellent book.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Which C#/.NET Obfuscator is best? Price and feature wise? I wise looking at the professional edition of dotfuscator but the price for the professional one is just silly. Any recommendations would be welcome.
It is quite straighforward, you have only to remember that, since the ArrayList operator  returns an Object, then you have to cast it to the proper type, for instance (assuming that MyClass has a method Version() returning a string):
MyClass p = new MyClass();
ArrayList a = new ArrayList();
string sVersion =((MyClass)a).Version();
hope that helps
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.