Metody rozszerzające pozwalają "dodawać" metody do istniejących typów (w tym typów, które nie są własnością użytkownika, takich jak string czy int) bez modyfikowania ich ani dziedziczenia. Definiuje się je jako metody statyczne z modyfikatorem this na pierwszym parametrze i wywoła się je jak metody instancji. LINQ jest na nich zbudowany.
