Технология Microsoft ADO.NET

Класс HashTable


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

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("Кириллова", 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 требует два параметра: значение первого аргумента будет выступать в роли ключа для элемента, которым является значение второго аргумента.

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


Рис. 9.20.  Приложение HashtableExample

В программном обеспечении к курсу вы найдете приложение Hashtable Example (Code\Glava4\ HashtableExample ).



Содержание раздела