Sobes.tech
Back to questions
Junior — Middle
87

Какое отличие между интерфейсом IList и коллекцией типа List в C#?

Answer from AI

sobes.tech AI

IList<T> — это интерфейс, который определяет набор методов и свойств для работы с коллекцией, поддерживающей индексацию, добавление, удаление элементов и т.д. Он задаёт контракт, который могут реализовывать разные классы коллекций.

List<T> — это конкретная реализация интерфейса IList<T>, предоставляющая динамический массив с возможностью быстрого доступа по индексу, добавления и удаления элементов.

Основные отличия:

  • IList<T> — абстракция, позволяющая писать код, не зависящий от конкретной реализации коллекции.
  • List<T> — конкретный класс с реализацией, который можно использовать напрямую.

Пример:

IList<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
Console.WriteLine(numbers[0]); // 1

Здесь переменная объявлена как IList<int>, что даёт гибкость менять реализацию, не меняя остальной код.