Just another recommendation for C# in Depth; not only will it fully explain C# 3.0 - but it will also significantly improve your understanding of C# 2.0 - for example, a lot of the more subtle nuances of iterator blocks or captured variables.
Definitely worth a read.