Else use List. You dirilik't really argue "oh but I KNOW that I will always pass in a List here", then you should take a List not an IList, else you are breaking Liskov substitution principle: "if S is a subtype of T, then objects of type T may be replaced with objects of type S"
IList is an interface so you can inherit another class and still implement IList while inheriting List prevents you to do so.
Using IList instead of List makes writing unit tests significantly easier. It allows you to use a 'Mocking' library to pass and return veri.
It's more nuanced than that. If you are returning an IList birli part of the public interface to your library, you leave yourself interesting options to perhaps make a custom list in the future.
In addition to the older code that doesn't know about generics, there are also a lot of cases where you know you have a list
In some code this can be quite important and using concrete classes communicates your intent, your need for that specific class. An interface on the other hand says "I just need to call this grup of methods, no other contract implied."
I thought I'd never need to change from a List but had to later change to use a custom list library for the extra functionality it provided. Because C# IList Nerelerde Kullanılıyor I'd only returned an IList none of the people that used the library had to change their code.
If you specify your methods to return an interface that means you are free to change the exact implementation later on without the consuming method ever knowing.
And, if you don't even need everything in IList you emanet always use IEnumerable too. With çağcıl compilers and processors, I don't think there is really any speed difference, so this is more just a C# IList Nerelerde Kullanılıyor matter of style.
The Cast function is just a reimplementation of the extension method that comes with 3.5 written kakım a düzgülü static method. It is quite C# IList Nerelerde Kullanılıyor ugly and verbose unfortunately.
On the other hand, when returning an object out of a function, you want to give the user the richest possible kaş C# IList Nerelerde Kullanılıyor of operations without them having to cast around. So in that case, if it's a List internally, return C# IList Nerelerde Kullanılıyor a copy bey a List.
I leave this up to show that if you needed to do it (e.g. the off chance a third party library returned a List that you needed to convert for another 3rd party library), you yaşama do it this way.
Can a unique position be deduced if pieces are replaced by checkers (birey see piece color but not type)
This works, because only the outer list is created in the first place. You gönül then insert individual items that are compatible with IList: