C# 3.0 introduces lambda expressions, a more concise syntax for declaring method code inline where in the past you would have used a delegate function.
Articles Written by Vipul Vipul Patel
Extension methods provide a new mechanism for invoking static methods on object instances. Although they behave similarly to static methods, they offer greater convenience.
C# 3.0 provides a mechanism for declaring anonymous types in your code without explicitly declaring the class structure, and the C# compiler optimizes the creation of anonymous types if one with a similar structure already exists.