Читаем C# 4.0: полное руководство полностью

    for(int i=0; i < 20; i++)

      lst.Add((char) ('a' + i));

    Console.WriteLine("Текущая емкость: " + lst.Capacity);

    Console.WriteLine("Количество элементов после добавления 20 новых: " + lst.Count);

    Console.Write("Содержимое: ");

    foreach(char с in lst)

      Console.Write(с + " ") ;

    Console.WriteLine("\n");

    // Изменить содержимое динамического массива,

    // используя индексирование массива.

    Console.WriteLine("Изменить три первых элемента");

    lst[0] = 'X';

    lst[1] = 'Y' ;

    lst[2] = 'Z';

    Console.Write("Содержимое: ");

    foreach(char с in lst)

      Console.Write(с + " ");

    Console.WriteLine();

    // Следующая строка кода недопустима из-за

    // нарушения безопасности обобщенного типа.

    // lst.Add(99); // Ошибка, поскольку это не тип char!

  }

}

Эта версия программы дает такой же результат, как и предыдущая.

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

Добавить 6 элементов

Количество элементов: 6

Текущее содержимое: С А Е В D F

Удалить 2 элемента

Количество элементов: 4

Содержимое: С Е В D

Добавить еще 20 элементов

Текущая емкость: 32

Количество элементов после добавления 20 новых: 24

Содержимое: С Е В D a b c d e f g h i j k l m n o p q r s t

Изменить три первых элемента

Содержимое: X Y Z D a b c d e f g h i j k l m n o p q r s t

Класс LinkedList

В классе LinkedList создается коллекция в виде обобщенного двунаправленного списка. В этом классе реализуются интерфейсы ICollection, ICollection, IEnumerable, IEnumerable, ISerializable и IDeserializationCallback. В двух последних интерфейсах поддерживается сериализация списка. В классе LinkedList определяются два приведенных ниже открытых конструктора.

public LinkedListO

public LinkedList(IEnumerable collection)

В первом конструкторе создается пустой связный список, а во втором конструкторе — список, инициализируемый элементами из коллекции collection.

Как и в большинстве других реализаций связных списков, в классе LinkedList инкапсулируются значения, хранящиеся в узлах списка, где находятся также ссылки на предыдущие и последующие элементы списка. Эти узлы представляют собой объекты класса LinkedListNode. В классе LinkedListNode предоставляются четыре следующих свойства.

public LinkedListNode Next { get; }

public LinkedListNode Previous { get; }

public LinkedList List { get; }

public T Value { get; set; }

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

В классе LinkedList определяется немало методов. В табл. 25.16 приведены наиболее часто используемые методы данного класса. Кроме того, в классе LinkedList определяются собственные свойства, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Эти свойства приведены ниже.

public LinkedListNode First { get; }

public LinkedListNode Last { get; }

С помощью свойства First получается первый узел в списке, а с помощью свойства Last — последний узел в списке.

Таблица 25.16. Наиболее часто используемые методы, определенные в классе LinkedList

Метод - Описание

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных