Мне нужно создать собственный собственный 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>, но как именно с некоторыми сильными причинами пойти с ним?
Я просмотрел некоторые существующие сообщения, но никто не дает требуемую информацию.