Supposons que j'ai une méthode
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
J'ai lu qu'il serait préférable de renvoyer une interface (soit IList
ou IEnumerable
) plutôt que de renvoyer a List
. Certains arguments que j'ai entendus pour le faire sont qu'il cache les données et donne au développeur d'API la flexibilité de changer la représentation interne des données à une date ultérieure.
Mon souci de simplement renvoyer un IEnumerable
est que vous perdez des fonctionnalités, telles que l'accès aléatoire et la Count
propriété.
Je sais qu'accepter un IEnumerable
comme paramètre est logique, car cela donne au consommateur la meilleure flexibilité pour envoyer des données à ma méthode, l'ensemble minimaliste d'exigences pour que la méthode fonctionne.
Quelle est la meilleure pratique pour le type de retour?