Объект DataView. Вывод связанных таблиц
Класс 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).
В программном обеспечении к курсу вы найдете приложение Hashtable Example (Code\Glava4\ HashtableExample ).
Класс ArrayList
Класс ArrayList, подобно классу Hashtable, определенный в пространстве имен System.Collections, представляет собой один из чрезвычайно простых и удобных способов работы с наборами элементов. Объекты этого класса не имеют фиксированного размера и при необходимости могут менять его. Объект ArrayList при своем создании резервирует место в памяти для 16 элементов - указателей на тип object. При добавлении семнадцатого элемента размерность ArrayList увеличивается до 32 элементов. Обращение к объектам осуществляется аналогично обращению к элементам массива. Создайте новое консольное приложение, назовите его "ClassArrayList". В таблице 9.2 приводится полный его листинг:
| Листинг приложения ClassArrayList | Результат работы приложения (рис. 9.21) |
|---|---|
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("Удаление
элемента:\n");
foreach (object element in ar)
{
Console.WriteLine(element);
}
ar.Insert(6, "XYZ");
Console.WriteLine("Вставка элемента \n
на заданную позицию:\n");
foreach (object element in ar)
{
Console.WriteLine(element);
}
ar.Clear();
Console.WriteLine("Удаление
всех элементов:\n");
foreach (object element in ar)
{
Console.WriteLine(element);
}
}
}
} |
Из рис. 9.21 видно, что элементами ArrayList могут быть любые значения, поскольку он содержит в себе указатели на тип object. Для возвращения значений из массива необходимо осуществлять явное преобразование типов.
В программном обеспечении к курсу вы найдете приложение ClassArray List (Code\Glava4\ ClassArrayList).

