What is the best book to learn C# for someone who has little programming experience?
Look at this free book of Charles Petzold, that's a very good introduction.
If there's a newer version available, I found the Programming C# book from O'Reilly to be a good tour of all the features.
Stanley Lippman's C# Primer is a very good book for learning C# and not having any programming experience. I got it for my son and he is picking up the programming concepts quite well.
Visual C# 2005, C#: How to Program, or C#: A Programmer's Introduction By Deitel. These are great intro to programming books.
I'd recommend "Wrox Press Beginning C# 3.0 An Introduction to Object Oriented Programming" which I found very valuable for a beginner.
I recently had to find a book for a friend to help them, I looked through quite a few including Head First C#. I know everybody learns differently but I thought this book was awful. It looks and reads like somebodies private notes. It starts off with creating a database. I was expecting a book that teaches one a language to start off with a simple console app so you can learn the main concepts. Anyway the once I thought looked pretty well laid out was Illustrated C# 2008 by Daniel Solis. It went through topics in the order that personally made sense to me.
I've alwalys liked Herb Schildt. He always seemed to be able to do the most advance things, yet dumb it down for the rest of us. Check out his beginner's C# book: http://www.amazon.com/3-0-Beginners-Guide-Herbert-Schildt/dp/0071588302
Check this question that was already asked on stackoverflow.
http://stackoverflow.com/questions/1934626/good-c-learning-book
I know its bit outdated question, but I'm extremely happy with Accelerated C# 2008 from Trey Nash. I'm using .net since 1.1 and its not my first language (java, C++ and php before), and I found it probably one of the best programming books so far. I never seen better explanation of some of the patterns and forms in the C#, like proper exception handling, correct use of the disposable pattern etc. It doesn't waste your time explaining you all over again what if or for does, but goes really deep into different concepts. And there is updated version for 2010 as well.
My favorite C# book by far: Pro C# 2010 and the .NET 4.0 Platform by Andrew Troselen. You'll get your money's worth with this one. ;)
And don't be intimidated by its size! Andrew does a really good job explaining how to get your environment setup and gives great examples on the basics of C#.