C# 3.0 Słowa kluczowe "select, from, where" pozwalające na dostęp do SQL, XML, kolekcji i innych (Language integrated query (LINQ)) Proste inicjowanie obiektów: Klient k = new Klient(); k.Imie="Jan"; staje się Klient k = new Klient() { Imie="Jan" }; wyrażenia lambda: listOfFoo.Where(delegate(Foo x) { return x.size>10;}) staje się listOfFoo.Where(x => x.size>10); Typy domniemane: var x = "hello"; oznacza to samo, co string x = "hello"; Typy anonimowe: var x = new { Imie = "Jan" } Automatycznie generowane właściwości: public static int Liczba { get; internal set; } Rozszerzanie typów – dodawanie nowych metod do istniejących klas bez potrzeby ich dziedziczenia.
C# 3.0 przedstawiono na PDC 2005. Jest obsługiwany przez środowisko Visual Studio 2008, a jego kompilator jest częścią platformy .NET Framework 3.5.
C# 4.0 Obsługa języków dynamicznych dzięki słowu kluczowemu dynamic. Obsługa kontra- i kowariancji. Opcjonalne słowo kluczowe ref dla wywołań metod obiektów COM. Parametry opcjonalne i argumenty nazwane.
Jest obsługiwany przez środowisko Visual Studio 2010, a jego kompilator jest częścią platformy .NET Framework 4.0.