C# 4.0 полное руководство - 2011
Шрифт:
}
}
Эта версия программы дает такой же результат, как и предыдущая.
Исходное количество элементов: О
Добавить 6 элементов Количество элементов: 6 Текущее содержимое: С А Е В D F
Удалить 2 элемента Количество элементов: 4 Содержимое: С Е В D
Добавить еще 20 элементов Текущая емкость: 32
Количество элементов после добавления 20 новых: 24 Содержимое: CEBDabcdefghij klmnopqrst
Изменить три первых элемента
Содержимое: XYZDabcdefghij klmnopqrst
Класс LinkedList<T>
В классе LinkedList<T> создается
public LinkedListO
public LinkedList(IEnumerable<T> collection)
В первом конструкторе создается пустой связный список, а во втором конструкторе — список, инициализируемый элементами из коллекции collection.
Как и в большинстве других реализаций связных списков, в классе LinkedList<T> инкапсулируются значения, хранящиеся в узлах списка, где находятся также ссылки на предыдущие и последующие элементы списка. Эти узлы представляют собой объекты класса LinkedListNode<T>. В классе LinkedListNode<T> предоставляются четыре следующих свойства.
public LinkedListNode<T> Next { get; } public LinkedListNode<T> Previous { get; } public LinkedList<T> List { get; } public T Value { get; set; }
С помощью свойств Next и Previous получаются ссылки на предыдущий и последующий узлы списка соответственно, что дает возможность обходить список в обоих направлениях. Если же предыдущий или последующий узел отсутствует, то возвращается пустая ссылка. Для получения ссылки на сам список служит свойство List. А с помощью свойства Value можно устанавливать и получать значение, находящееся в узле списка.
В классе LinkedList<T> определяется немало методов. В табл. 25.16 приведены наиболее часто используемые методы данного класса. Кроме того, в классе LinkedList<T> определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
public LinkedListNode<T> First { get; } public LinkedListNode<T> Last { get; }
С помощью свойства First получается первый узел в списке, а с помощью свойства Last — последний узел в списке.
Таблица 25.16. Наиболее часто используемые методы, определенные в классе LinkedList<T>
Метод
Описание
public LinkedListNode<T>
Добавляет в список узел со значением value не
AddAfter(LinkedListNode<T>
посредственно после указанного
узла node. Указыnode, T value)
ваемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value
public void
Добавляет в список новый узел newNode непо
AddAfter(LinkedListNode<T>
средственно после указанного узла node. Ука
node, LinkedListNode<T>
зываемый узел node не должен быть пустым
newNode)
(null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то* генерируется исключение
InvalidOperationException
public LinkedListNode<T>
Добавляет в список узел со значением value непо
AddBefore(LinkedListNode<T>
средственно перед указанным узлом node. Указы
node, T value)
ваемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value
Окончание табл. 25.16
Метод
Описание
public void
Добавляет в список новый узел newNode не
AddBefore(LinkedListNode<T>
посредственно перед указанным узлом node.
node, LinkedListNode<T>
Указываемый узел node не должен быть пу
newNode)
стым (null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то генерируется исключение
InvalidOperationException
public LinkedList<T>
Добавляет узел со значением value в начало спи
AddFirst(T value)