Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type.
Common extension methods in .NET include the LINQ standard query operators that add additional query capabilities to the System.Collections.IEnumerable and System.Collections.Generic.IEnumerable<T> types.
Essentially, an extension method is a special type of static method that allows you to add functionality to an existing type even if you don't have access to the source code.
You can add as many extension methods as you want to any type. Most importantly, you can even add extension methods to a value type.
Collection
[
|
...
]