Illustrated C# 2012: http://www.amazon.com/Illustrated-C-2012-Daniel-Solis/dp/143...
Practical Object-Oriented Design in Ruby: http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...
Illustrated C# 2012 (And previous version: 2010, etc). http://www.amazon.com/Illustrated-C-2012-Daniel-Solis/dp/143...
Of all of the books I have read/browsed regarding C#, this has to be the clearest, most concise on that I have had the pleasure of reading. The material is presented in an understandable manner and the author provides the reason "why" you are doing something rather than just list a series of "do this" steps.
To me, this is the most important quality in a book: Succinctly convey your point so that the reader can truly learn what you are trying to get across.
I do have one other book to recommend for you Rubyists. While I say this is for Rubyists, the concepts in the following book are extremely helpful for other OOP languages as well:
http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...
I hope this helps; I have spent many hours going through books that sort of meander around the point, have extra fluff, etc. So when I come across two truly stellar gems like the above, I would like to share with others so that they, too, can save some time learning a programming language or paradigm.
This is a very good book on subject, very clear:
http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-...