Я использую метод AddRange
из класса ArrayList
и я нашел пример:Интерфейс ICollection и AddRange C#/NET
ArrayList myAL = new ArrayList();
Queue myQueue = new Queue();
myQueue.Enqueue("jumped");
myQueue.Enqueue("over");
myQueue.Enqueue("the");
myQueue.Enqueue("lazy");
myQueue.Enqueue("dog");
// Copies the Queue elements to the end of the ArrayList.
myAL.AddRange(myQueue);
AddRange
имеет параметр типа ICollection
, но в примере я могу дать Queue
класс (возможно, из-за Queue
класс наследуется от интерфейса ICollection
). Может somebode объяснить мне, что происходит при вызове AddRange
и копировать Queue
Тип класса в интерфейсе типа ICollection
.
Я не понимаю ваш вопрос. Случается, что элемент из «ICollection» добавляется один за другим в ваш новый список. – HimBromBeere
Боковое примечание: больше не используйте 'ArrayList', используйте общий« Список ». –
Я понимаю функцию. Но что происходит в куче или стеке, если я копирую объект Queue (myQueue) в интерфейсе ICollection? Как я могу использовать класс Queue в AddRange в качестве параметра, если AddRange ожидает интерфейс ICollection? – leoleo