C# 1.0 => .NET Framework 1.0 => Visual Studio .NET 2002 (VS2002) => (January 2002)
C# 1.2 => .NET Framework 1.1 => Visual Studio .NET 2003 (VS2003) => (April 2003).
(Features -> Call Dispose on IEnumerators which implemented IDisposable etc.)
C# 2.0 => .NET Framework 2.0 => Visual Studio 2005 (VS2005) => (November 2005).
(Features: Generics, Partial Types Anonymous Methods, Getter/setter separate accessibility, nullable types, iterator blocks, Static classes etc.)
C# 3.0 => .NET Framework 3.5 => Visual Studio 2008 (VS2008) => (November 2007).
(Features: Implicitly typed local variables, Object and collection initializers, Auto-Implemented properties, Anonymous types, Extension methods
Query expressions, Lambda expressions, Expression trees, Partial methods)
C# 4.0 => .NET Framework 4 => Visual Studio 2010 (VS2010) => (April 2010).
(Features: Dynamic binding, Named and optional arguments, Generic co- and contravariance, Embedded interop types)
C# 5.0 => .NET Framework 4.5 => Visual Studio 2012 (VS2012) => August 2012.
(Features => Asynchronous methods, Caller info attributes)
C# 6.0 => Preview released April 3rd 2014.
(Features (Planned/Done) => Import of static type members into namespace, Exception filters, Await in catch/finally blocks, Auto property initializers, Default values for getter-only properties, Expression-bodied members, Null propagator (Succinct null checking), String Interpolation, nameof operator, Parameterless struct constructors, Dictionary initializer