C#のバージョン(1.x,2.0,3.0とか)と、
VisualStudio(VisualC#)のバージョン(VisualStudio2005とか、VisualC#2008とか)と、
.NET Frameworkのバージョン(2.0とか3.0とか)の違いがいまいちわかりません。

どなたかわかりやすく説明していただけませんか?

たとえば、C#3.0から追加になったLINQの機能を、VisualStudio2005でソースを書くとどうなりますか?
C#3.0はVisualStudio2008がサポートしていると聞いたのですが、動かなかったりコンパイルエラーになったりするのでしょうか?