Console.Write("Отобразить содержимое списка по ссылкам: ");

    for(node = ll.First; node != null; node = node.Next)

      Console.Write(node.Value + " ");

    Console.WriteLine("\n") ;

    // Отобразить связный список, обойдя его в цикле foreach.

    Console.Write("Отобразить содержимое списка в цикле foreach: ");

    foreach(char ch in ll)

      Console.Write(ch + " ");

    Console.WriteLine("\n");

    // Отобразить связный список, обойдя его

    // вручную в обратном направлении.

    Console.Write("Следовать по ссылкам в обратном направлении: ");

    for(node = ll.Last; node != null; node = node.Previous)

      Console.Write(node.Value + " ");

    Console.WriteLine ("\n");

    // Удалить из списка два элемента.

    Console.WriteLine("Удалить 2 элемента из списка");

    // Удалить элементы из связного списка.

    ll.Remove('С');

    ll.Remove('А');

    Console.WriteLine("Количество элементов в списке: " + ll.Count);

    // Отобразить содержимое видоизмененного списка в цикле foreach.

    Console.Write("Содержимое списка после удаления элементов: ");

    foreach(char ch in ll)

      Console.Write(ch + " ");

    Console.WriteLine ("\n");

    // Добавить три элемента в конец списка.

    ll.AddLast('X');

    ll.AddLast('Y');

    ll.AddLast('Z');

    Console.Write("Содержимое списка после ввода элементов: ");

    foreach(char ch in ll)

      Console.Write(ch + " ");

    Console.WriteLine("\n");

  }

}

Ниже приведен результат выполнения этой программы.

Исходное количество элементов в списке: 0

Добавить в список 5 элементов

Количество элементов в списке: 5

Отобразить содержимое списка по ссылкам: Е D С В А

Отобразить содержимое списка в цикле foreach: Е D С В А

Следовать по ссылкам в обратном направлении: А В С D Е

Удалить 2 элемента из списка

Количество элементов в списке: 3

Содержимое списка после удаления элементов: Е D В

Содержимое списка после ввода элементов: Е D В X Y Z

Самое примечательное в этой программе — это обход списка в прямом и обратном направлении, следуя по ссылкам, предоставляемым свойствами Next и Previous. Двунаправленный характер подобных связных списков имеет особое значение для приложений, управляющих базами данных, где нередко требуется перемещаться по списку в обоих направлениях.

Класс DictionaryCTKey, TValue>

Класс Dictionary позволяет хранить пары "ключ-значение" в коллекции как в словаре. Значения доступны в словаре по соответствующим ключам. В этом отношении данный класс аналогичен необобщенному классу Hashtable. В классе Dictionary реализуются интерфейсы IDictionary, IDictionary, ICollection, ICollection>, IEnumerable, IEnumerable>, ISerializable и IDeserializationCallback. В двух последних интерфейсах поддерживается сериализация списка. Словари имеют динамический характер, расширяясь по мере необходимости.

В классе Dictionary предоставляется немало конструкторов. Ниже перечислены наиболее часто используемые из них.

public Dictionary()

public Dictionary(IDictionaryCTKey, TValue> dictionary)

public Dictionary(int capacity)

Перейти на страницу:

Похожие книги