This blog shows the basic idea of what are the new features that are introduced in C# 2.0 and 3.0 release of .net framework
C# 2.0
1) Generics introduced
2) Anonymous Methods
3) new syntax for defining iterators
4) New options /keycontainer, /keyfile, /delaysign, /errorreport and /langversion in csc.exe compiler
5) New compiler directives -- #pragma warning disable and #pragma warning restore.
6) Nullable types notations
7) Partial types
8) Assignment of a different visibility to accessor of a property.
9) Definition of static classes.
10) Edit and Continue to modify their code while debugging it.
C# 3.0
1)Implicitly Typed Local Variables and Arrays
2) Object Initializers
3)Collection Initializers
4)Extension Methods
5)Anonymous Types
6) Lambda Expressions
7) Query Keywords
8) Auto-Implemented Properties
9) Partial Method Definitions
10) Dictionary Initializers