I found Programming C# to be exactly what I needed to make the transition from Java to C# and .NET development. Jesse Liberty has a very clear, consistent expository style. He is readable while avoiding excessive cuteness.
The book covers the C# language itself, then shows how to build applications that use the Windows GUI, ADO.NET, web services and the whole .NET framework. Throughout there are warnings and tips directed a programmers coming from Java, C++ and Visual BASIC.
I recommend this book to any software developer moving from another language to C#.