Suponha que eu tenha um método
public List<User> GetBatchOfUsers(IEnumerable<int> userIDs)
{
List<User> users = new List<User>();
// some database stuff
return users;
}
Eu li que seria melhor retornar uma interface ( IListou IEnumerable) em vez de retornar a List. Alguns argumentos que ouvi falar disso são que ocultam dados e oferecem ao desenvolvedor da API a flexibilidade de alterar a representação interna dos dados posteriormente.
Minha preocupação em apenas retornar um IEnumerableé que você perde funcionalidades, como acesso aleatório e a Countpropriedade.
Sei que aceitar IEnumerableum parâmetro faz sentido, pois oferece ao consumidor a melhor flexibilidade para enviar dados ao meu método, o conjunto minimalista de requisitos para o método operar.
Qual é a melhor prática para o tipo de retorno?