Métodos de extensão permitem "adicionar" métodos a tipos existentes (incluindo tipos que você não possui, como string ou int) sem modificá-los ou herdar deles. Eles são definidos como métodos estáticos com um modificador this no primeiro parâmetro, e chamados como se fossem métodos de instância. O LINQ é construído sobre eles.
