i think "thinking in C#" is the best so far .. a bit outdated thou .. but it discuss the basics in a very helpful manner and easy to understand