Интерфейсы коллекций
static void ShowList(ArrayList *pArray) // статическая функция { lEnumerator *pEnum = pArray › GetEnumerator(); while (pEnum › MoveNext()) { String *pStr = dynamic_cast<String *>(pEnum › Current); Console::WriteLine(pStr}; } } static void ShowArray(ArrayList *pArray) // статическая функция { for (int i = 0; i < pArray › Count; i++) f Console::WriteLine( "pArray › get_Item({0}) = {!}", _box (i), pArray › get_Item(i)); } } static void ShowCount() // статическая функция { Console::WriteLine( "pList › Count = {0}", _box(pList › Count)); Console::WriteLine( "pList › Capacity = {0}", _box(pList › Capacity)); // Вместимость } static void AddString (String *pStr) // статическая функция { if (pList › Contains(pStr)) // если содержит throw new Exception! // новое Исключение String::Format("list contains {0}", pStr)); // Формат: список содержит pList › Add(pStr); // Добавить } static void RemoveString(String *pStr) // статическая функция { if (pList › Contains(pStr)) // если содержит pList › Remove(pStr); // Удалить else Console::WriteLine( "List does not contain {0}", pStr); // Список //не содержит } static void RemoveAt(int nlndex) // статическая функция { try // попытка { pList › RemoveAt(nlndex); } catch (ArgumentOutOfRangeException *) { Console::WriteLine( "No element at index {0}", _box(nlndex)); // Нет элемента с таким индексом } } };
Результат работы программы будет таким:
pList › Count = 0 pList › Capacity = 4 // Вместимость Amy // Эми Bob // Боб Charlie // Чарли pList › Count = 3 pList › Capacity =4 // Вместимость Amy // Эми Bob // Боб Charlie // Чарли David // Дэвид Ellen // Эллен pList › Count = 5 pList › Capacity =8 // Вместимость pArray › get_Item(0) = Bob // Боб pArray › get_Item(1) = Charlie // Чарли pArray › get_Item(2) = Ellen // Эллен pList › Count = 3 pList › Capacity =8 // Вместимость List does not contain Amy // Список не содержит Эми No element at index 3 // Нет элемента с индексом 3