Страница 463 из 502
В классе LinkedList<T> определяется немало методов. В табл. 25.16 приведены наиболее часто используемые методы данного класса. Кроме того, в классе LinkedList<T> определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.
<b>public LinkedListNode<T> First { get; }</b>
<b>public LinkedListNode<T> Last { get; }</b>
С помощью свойства First получается первый узел в списке, а с помощью свойства Last — последний узел в списке.
Таблица 25.16. Наиболее часто используемые методы, определенные в классе LinkedList<T>
Метод - Описание
public LinkedListNode<T> AddAfter(LinkedListNode<T> node, T value) - Добавляет в список узел со значением value непосредственно после указанного узла node. Указываемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value
public void AddAfter(LinkedListNode<T> node, LinkedListNode<T> newNode) - Добавляет в список новый узел newNode непо
средственно после указанного узла node. Указываемый узел node не должен быть пустым (null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то* генерируется исключение InvalidOperationException
public LinkedListNode<T> AddBefore(LinkedListNode<T> node, T value) - Добавляет в список узел со значением value непо
средственно перед указанным узлом node. Указываемый узел node не должен быть пустым (null). Метод возвращает ссылку на узел, содержащий значение value
public void AddBefore(LinkedListNode<T> node, LinkedListNode<T> newNode) - Добавляет в список новый узел newNode не
посредственно перед указанным узлом node. Указываемый узел node не должен быть пустым (null). Если узел node отсутствует в списке или если новый узел newNode является частью другого списка, то генерируется исключение InvalidOperationException
public LinkedList<T> AddFirst(T value) - Добавляет узел со значением value в начало списка. Метод возвращает ссылку на узел, содержащий значение value
public void AddFirst(LinkedListNode node) - Добавляет узел node в начало списка. Если узел node является частью другого списка, то генерируется исключение InvalidOperationException
public LinkedList<T> AddLast(T value) - Добавляет узел со значением value в конец списка. Метод возвращает ссылку на узел, содержащий значение value
public void AddLast(LinkedListNode node) - Добавляет узел node в конец списка. Если узел node является частью другого списка, то генерируется исключение InvalidOperationException
public LinkedList<T> Find(T value) - Возвращает ссылку на первый узел в списке, имеющий значение value. Если искомое значение value отсутствует в списке, то возвращается пустое значение
public LinkedList<T> FindLast(T value) - Возвращает ссылку на последний узел в списке, имеющий значение value. Если искомое значение value отсутствует в списке, то возвращается пустое значение
public bool Remove(T value) - Удаляет из списка первый узел, содержащий значение value. Возвращает логическое значение true, если узел удален, т.е. если узел со значением value обнаружен в списке и удален; в противном случае возвращает логическое значение false
public void Remove(LinkedList<T> node) - Удаляет из списка узел, соответствующий указанному узлу node. Если узел node отсутствует в списке, то генерируется исключение InvalidOperationException
public void RemoveFirst() - Удаляет из списка первый узел
public void RemoveLast() - Удаляет из списка последний узел
В приведенном ниже примере программы демонстрируется применение класса LinkedList<T>.
<b>// Продемонстрировать применение класса LinkedList<T>.</b>
<b>using System;</b>
<b>using System.Collections.Generic;</b>
<b>class GenLinkedListDemo {</b>
<b> static void Main() {</b>
<b> // Создать связный список.</b>
<b> LinkedList<char> ll = new LinkedList<char>();</b>
<b> Console.WriteLine("Исходное количество элементов в списке: " + ll.Count);</b>
<b> Console.WriteLine();</b>
<b> Console.WriteLine("Добавить в список 5 элементов");</b>
<b> // Добавить элементы в связный список.</b>
<b> ll.AddFirst('А');</b>
<b> ll.AddFirst('В');</b>
<b> ll.AddFirst('С');</b>
<b> ll.AddFirst('D');</b>
<b> ll.AddFirst('Е');</b>
<b> Console.WriteLine("Количество элементов в списке: " + ll.Count);</b>
<b> // Отобразить связный список, обойдя его вручную.</b>
<b> LinkedListNode<char> node;</b>
<b> Console.Write("Отобразить содержимое списка по ссылкам: ");</b>
<b> for(node = ll.First; node != null; node = node.Next)</b>
<b> Console.Write(node.Value + " ");</b>
<b> Console.WriteLine("n") ;</b>
<b> // Отобразить связный список, обойдя его в цикле foreach.</b>
<b> Console.Write("Отобразить содержимое списка в цикле foreach: ");</b>
<b> foreach(char ch in ll)</b>