https://github.com/MicrosoftLearning/MSLearn-Implement-interfaces-in-CSharp
IEnumerable: Used to provide a standard way to iterate over a collection of objects.
IEnumerator: Used to provide a way to enumerate through a collection of objects.
IComparable: Used to provide a default sort order for objects of a specific type.
IComparer: Used to provide a custom sort order for objects of a specific type.
IDisposable: Used to provide a way to release unmanaged resources when an object is no longer needed.
IConvertible: Used to provide a way to convert an object to a different data type.
IEquatable: Used to provide a way to determine whether two objects are equal.
IFormattable: Used to provide a way to format an object as a string using a specified format.
IQueryable: Used to provide a way to query a data source.
IServiceProvider: Used to provide a way to retrieve services from a service container.