Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Using System.Collections.Generic;




class GenListDemo { static void Main() {

// Создать коллекцию в виде динамического массива.

List<char> 1st = new List<char>();

Console.WriteLine("Исходное количество элементов: " + lst.Count);

Console.WriteLine();

Console.WriteLine("Добавить 6 элементов");

// Добавить элементы в динамический массив.

1st.Add('С');

1st.Add(1А *);

1st.Add('Е');

1st.Add(1В1);

1st.Add('D');

1st.Add('F');

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

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

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

Console.Write("Текущее содержимое: "); for (int i=0; i < lst.Count;. i++)

Console.Write(1st[i] + " ");

Console.WriteLine("\n");

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

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

1st.Remove('F');

1st.Remove('А1);

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

// Отобразить содержимое динамического массива, используя цикл foreach. Console.Write("Содержимое: "); foreach(char с in 1st)

Console.Write(с + " ");

Console.WriteLine("\n");

Console.WriteLine("Добавить еще 20 элементов");

// Добавить количество элементов, достаточное для // принудительного расширения массива, for(int i=0; i < 20; i++)

1st.Add((char) ('a1 + i));

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

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

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

Foreach(char с in 1st)

Console.Write(с + " ");

Console.WriteLine("\n");

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

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

Console.WriteLine("Изменить три первых элемента"); 1st [0] = 1X'; lst[l] = ' Y';

1st[2] = 1Z1;

Console.Write("Содержимое: "); foreach(char с in 1st)

Console.Write(с + " ");

Console.WriteLine ();

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

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

}

}

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

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

Добавить 6 элементов Количество элементов: 6 Текущее содержимое: С А Е В D F

Удалить 2 элемента Количество элементов: 4 Содержимое: С Е В D

Добавить еще 20 элементов Текущая емкость: 32

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

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

Содержимое: XYZDabcdefghij klmnopqrst

Класс LinkedList<T>

В классе LinkedList<T> создается коллекция в виде обобщенного двунаправленного списка. В этом классе реализуются интерфейсы ICollection, ICollection<T>, IEnumerable, IEnumerable<T>, ISerializable и IDeserializationCallback. В двух последних интерфейсах поддерживается сериализация списка. В классе 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; }





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 553 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Так просто быть добрым - нужно только представить себя на месте другого человека прежде, чем начать его судить. © Марлен Дитрих
==> читать все изречения...

2498 - | 2247 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.