Los métodos de extensión te permiten "agregar" métodos a tipos existentes (incluyendo tipos que no posees, como string o int) sin modificarlos ni heredar de ellos. Se definen como métodos estáticos con un modificador this en el primer parámetro, y se llaman como si fueran métodos de instancia. LINQ está construido sobre ellos.
