Интерфейсы коллекций
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
