Essential C# 3.0: For .NET Framework 3.5 - Mark Michaelis