I would like to know if C# extension method is based on any existing design pattern.
The extension methods can be thought as a replacement of the Visitor Pattern. It is also proposed that they can be used as Adapters.
In general languages evolve to make the need of design patterns less necessary. There is a quote for example that Lisp doesn't need design patterns, because everything is built in the language. So the right question will be, what design patterns do extension methods replace?