Sobes.tech
Back to questions
Junior — Middle
70

Можешь назвать различные способы реализации интерфейсов коллекций в языке программирования?

Answer from AI

sobes.tech AI

В C# интерфейсы коллекций реализуются разными способами, в зависимости от требований:

  • Использование стандартных коллекций: Например, List<T>, Dictionary<TKey,TValue>, HashSet<T> реализуют интерфейсы IEnumerable<T>, ICollection<T>, IList<T> и т.д.

  • Реализация собственных коллекций: Можно создать класс, который реализует нужный интерфейс, например, IEnumerable<T> для поддержки перебора, или ICollection<T> для поддержки добавления и удаления элементов.

  • Наследование от базовых классов: Например, от Collection<T> или ObservableCollection<T>, чтобы расширить функциональность.

  • Использование оберток: Например, ReadOnlyCollection<T> для создания неизменяемых коллекций.

Пример реализации простого перечисляемого класса:

class MyCollection<T> : IEnumerable<T>
{
    private List<T> items = new List<T>();

    public void Add(T item) => items.Add(item);

    public IEnumerator<T> GetEnumerator() => items.GetEnumerator();

    IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}