Postać i składnia instrukcji w C# są bardzo podobne do tych znanych nam z Javy, a zatem podobne również do tych z C++. Do najbardziej rzucających się w oczy różnic należy inna, dodatkowa, forma pętli, zaczerpnięta z języków listowych (taka forma jest od lat stosowana w Perlu, Pythonie i językach skryptowych Uniksa/Linuksa; występuje również w języku Visual Basic, a ostatnio została dodana do Javy). Jest to forma foreach która pozwala przebiegać w pętli po elementach kolekcji, przy czym kolekcją może być również zwykła tablica. Na przykład pętla foreach we fragmencie
string[] pliki = new string[] {"prog.exe", "parag.txt", "book.txt", "chap.txt", "quake.exe", "marq.bat"}; int txts = 0, exes = 0; foreach (string s in pliki) { if (s.IndexOf(".exe") != -1) exes++; if (s.IndexOf(".txt") != -1) txts++; }przeliczy wszystkie pliki z rozszerzeniem .exe i ' .txt' wymienione w tablicy pliki.
Nieco różna jest też instrukcja switch. Po pierwsze wymaga się, aby każda niepusta fraza case kończyła się instrukcją break albo jawną instrukcją skoku, nawet jeśli jest to skok do następnej frazy case. Inna różnica, bardziej istotna, polega na tym, że wyrażenia sterujące we frazie switch i wyrażenia stałe we frazach case nie muszą mieć wartości całkowitej — dopuszczalne tu są też napisy co znacznie rozszerza zakres stosowalności instrukcji switch.
T.R. Werner, 21 lutego 2016; 20:17