there is no 5.0 there is .NET 4.5 which is the latest, but the differences between 4.0 and 4.5 are minimal.
He is talking about C# 5 which does exist as it was released with .net 4.5
As for which book to get, it's difficult to say. I would look at reviews for both and see what people have to say. Keep in mind that neither choice is a wrong choice. I would recommend going for the version 4 book ( it'll probably be cheaper ) unless the newer copy happens to teach it in a better way. You can always use web resources once you've finished learning the features in version 4 to learn version 5 afterwards.
As for Visual Studio versions, you can always use the latest Express Edition which will allow you to use features from the newer version of the language for free at http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
It does not really matter if it is a version older or not.
Trust me - by the time you become an expert on all the obscure nuances of both the language and framework (without having to consult the stackoverflow or MSDN), there will be at least one new version out there.
If you think you can learn one version/language and be done with it, you are in the wrong industry.
It's a constant - lifelong - learning experience.
If you are learning, it doesn't matter if you learn 4 or 5. It will take a while to even get to the topics that make a difference in 4 and 5. The fundamentals and basics of the language remain unchanged. The book I chose to learn c# with was Beginning C# 2008. I read this in 2010, so it was outdated then, but it still had plenty of topics to make it worth while. The reason I chose that was because it was dirt cheap at the time. It would be worth learning from an older source, because a lot of the new stuff is just a shorthand way of doing something in the past that took longer. So, if you are on a project and want to use some C# 5.0 stuff, but are only able to work in .NET 3.5, you may want to know how to do it from the basics because now your 5.0 is not usable (I am specifically thinking about async/await keywords).
In a production environment you might well choose to target an older version anyway, due to the wider install base. Unless you pester people into updating to the latest .Net.
Btw you don't have to install Windows to play with C#, you can do it on a Mac under Mono.
Btw you don't have to install Windows to play with C#, you can do it on a Mac under Mono.
+1 Thats a good points, check out Xamarin.com or Monodevelop.