Мне нужно создать собственный собственный GenericCollection
класс. Теперь у меня есть много вариантов, чтобы получить его с помощью IEnumerable
, ICollection
и IList
, где позже предлагает некоторые дополнительные функции.
Я немного запутался в том, что если я иду с IEnumerable<T>
, мне может потребоваться объявить объект для фактического хранения коллекции, как в этом случае _list
.
public class GenericCollection<T> : IEnumerable<T>
{
private List<T> _list;
//...
}
Но если я иду с ICollection<T>
или IList<T>
, мне не требуется объявлять объект List
, поскольку он неявно доступен.
public class GenericCollection<T> : IList<T>
{
// no need for List object
//private List<T> _list;
//...
}
В чем разница между этими двумя подходами в отношении производительности?
В этом сценарии каждый из них предпочтительнее, особенно когда речь идет о создании собственной коллекции. Меня интересует сборка легкого веса с хорошей производительностью. Я думаю, что это может быть достигнуто с помощью IEnumerable<T>
, но как именно с некоторыми сильными причинами пойти с ним?
Я просмотрел некоторые существующие сообщения, но никто не дает требуемую информацию.