What if .NET 5.0 replaces System.Collections.Generic.List
to System.Collection.Generics.LinearList
. .NET always owns the name List
but they guarantee that IList
is a contract. So IMHO we (atleast I) are not supposed to use someone's name (though it is .NET in this case) and get into trouble later.
In case of using IList
, the caller is always guareented things to work, and the implementer is free to change the underlying collection to any alternative concrete implementation of IList