Kamui's recommendation is a great reference book, but i found it less useful as a teaching book. I found that Microsoft's Step by Step books were much better for picking up the language, I used both the ASP.NET 4.0 and C#2010 books. Design patterns aren't something that should learned in tandem with a language, especially a first language. They are language independent ideas that should be learned as such, and after someone has a reasonable knowledge of a language to practice implementing them. It is easy for design patterns to cause more harm than good especially if someone learning them doesn't have a good foundation in programming and how their language works.