My favorite books are Game Coding Complete, Game Engine Architecture and Programming Game AI by Example.
Notice that all three are C++ books, but a C# programmer could certainly benefit from them as well.
The first, Game Coding Complete, gives an intermediate point of view on game dev. It is great if you can code a tetris but get lost on anything bigger than that.
The second, Game Engine Architecture, is also an intermediate book, that focus on the architecture of a game engine (duhh). It gives an overview of how parts fit together, and is a good book even if you don't plan on writing an engine. This book doesn't go too deep code-wise though, some snippets here and there, but nothing you can really go source-reading. This book has a fresh new edition, I think it came out last week.
The third one (even though it is already 10 years old) is a great book to read when you want to implement some basic AI on your game. It is full of code examples, but everything is windows specific (10yo, wouldn't expect anything different). Anyway, it actually gives a good introduction to AI and also introduces you to messaging systems, ECS... the scripting section is not good though, it is badly outdated.
As an honorable mention, I liked the "The" Game Production Handbook. It doesn't have anything to do with programming but is worth the read.
If you want to, you can explore the GD.net books section. They have some referred amazon links for you to browse (I prefer the BookDepository.com personally).
Edited by dejaime, 10 August 2014 - 12:26 AM.