1. Рихтер - верный выбор. Это библия .net-чика. Осваивай её в совершенстве.
Работа с коллекциями, обработка данных при помощи LINQ - могу посоветовать книгу Fabio Claudio Ferracchiati "LINQ for Visual C# 2008". Небольшой объём, и содержит много основных приёмов, в том числе обработка XML.
Что касается разделов ASP.NET MVC, IIS, WPF - очень уж широкий охват. Судя по последним веяниям лучше двигаться в сторону веба и ASP.NET MVC. Микрософт слабо развивает линейку десктопа с WPF.
2. Фаулер и GOF-паттерны. Рефакторинг даёт много полезных техник для избежания говнокода. Вторая книга расчтана на более "зрелого" программиста, имеющего опыт и дающая практические рецепты хороших архитектурных решений. Обе книги можно осваивать одновременно. В GOF сложность выше.
** GOF то есть книга авторов Erich Gamma,
Richard Helm и другие "Design Patterns: Elements of Reusable Object-Oriented Software"
Ещё альтернативный способ - ходить на собеседования в компании с целью разведывать требования к специалистам, делать тестовые задания, заполнять "тёмные места" в своей копилке знаний. Так можно понять чего хочет отрасль, какие знания нужны, какие задачи ставятся.