Главная > Работа с базами данных на языке C#
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

4.4.5. Вспомогательные классы

 

Класс HashTable

 

Hashtable - это структура данных, предназначенная для осуществления быстрого поиска. Это достигается за счет связывания ключа с каждым объектом, который сохраняется в таблице. Hashtable - это объект, в котором хранятся пары значений: так называемый ключ и само значение. Элементы каждой коллекции - и ключей (Keys), и значений (Values) - являются типом object, а это значит, что в качестве индекса элемента в привычном понимании теперь выступает не int, а именно object!

Создадим новое консольное приложение. Листинг этого приложения:

using System;
using System.Collections;
namespace HashtableExample {
          class Statistics
          {
            public Hashtable AbonentList;
            public Statistics() {
                        AbonentList = new Hashtable();
            }
          }
 
          class Abonent {
            public string Name;
            public int Phone;
            public Abonent(string n, int p) {
                        Name = n;
                        Phone = p;
            }
          }
          class Class1 {
            [STAThread]
            static void Main(string[] args) {
                        Abonent a1 = new Abonent(“Иванов", 1234567);
                        Abonent a2 = new Abonent(“Николаев", 3216547);
                        Abonent a3 = new Abonent("Андреева", 685472);
                        Abonent a4 = new Abonent(“Волков", 1234500);
                        Abonent a5 = new Abonent("Киpилловa", 3245637);
                        Statistics myStatistics = new Statistics();
                        myStatistics.AbonentList.Add(a1 .Phone, a1 .Name);
                        myStatistics.AbonentList.Add(a2.Phone, a2.Name);
                        myStatistics.AbonentList.Add(a3.Phone, a3.Name);
                        myStatistics.AbonentList.Add(a4.Phone, a4.Name);
                        myStatistics.AbonentList.Add(a5.Phone, a5.Name);
                        Console.WriteLine(myStatistics.AbonentList[685472]);
            }
          }
}

В методе Main создаются пять объектов класса Abonent, которые затем добавляются в Hashtable AbonentList (myStatistics.AbonentList) в коллекцию Values. Ключами для этих элементов будут служить значения их полей Phone. Обратите внимание, что метод Add() класса Hashtable требует два параметра: значение первого аргумента будет выступать в роли ключа для элемента, которым является значение второго аргумента.

Результатом выполнения программы будет вывод фамилии абонента, с заданным номером телефона (ключом) (рис. 134).

Рис. 134. Работа с классом HashTable.

 

Класс ArrayList

 

Класс ArrayList, подобно классу Hashtable, определенный в пространстве имен System.Collections, представляет собой один из чрезвычайно простых и удобных способов работы с наборами элементов. Объекты этого класса не имеют фиксированного размера и при необходимости могут менять его. Объект ArrayList при своем создании резервирует место в памяти для 16 элементов - указателей на тип object. При добавлении семнадцатого элемента размерность ArrayList увеличивается до 32 элементов. Обращение к объектам осуществляется аналогично обращению к элементам массива.

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

using System;
using System.Collections;
namespace ClassArrayList {
          class Class1 {
            [STAThread]
            static void Main(string[] args)
            {
                        ArrayList ar = new ArrayList();
                        ar.Add("A");
                        ar.Add("AB");
                        ar.Add("ABC");
                        ar.Add("ABCD");
                        ar.Add("ABCDE");
                        ar.Add("ABCDEF");
                        ar.Add("ABCDEFG");
                        ar.Add("ABCDEFGH");
                        ar.Add("");
                        ar.Add("");
                        Console.WriteLine("Вывод элементов массива:n");
                        foreach (object element in ar) {
                                   Console.WriteLine(element);
                        }
                        ar.Remove("ABCD");
                        Console.WriteLine("Удaлeниe элемента:n");
                        foreach (object element in ar) {
                                   Console.WriteLine(element);
                        }
                        ar.Insert(6, "XYZ");
                        Console.WriteLine("Вставка элемента nHa заданную  позициюn");
                        foreach (object element in ar) {
                                   Console.WriteLine(element);
                        }
                        ar.Clear();
                        Console.WriteLine("Удaлeниe всех элементов:n");
                        foreach (object element in ar) {
                                   Console.WriteLine(element);
                        }
            } // end Main()
          } // end class
} // end namespace

Результат работы приложения приведен на рисунке 135.

Рис. 135. Работа с классом ArrayList

Из рисунка 135 видно, что элементами ArrayList могут быть любые значения, поскольку он содержит в себе указатели на тип object. Для возвращения значений из массива необходимо осуществлять явное преобразование типов.

 

Categories

1
Оглавление
email@scask.ru