Коллекция (Collection) - это набор классов, с которыми можно работать точно так же как и с массивом. Вот пример, правда пока не работающий, он даже не скомпилируется пока, но вот как это должно все происходить.
using System;
class MainClass
{
public static void Main(string[] args)
{
ArrayString ar = new ArrayString();
foreach (string s in ArrayString)
{
Console.WriteLine(s);
}
}
}
class ArrayString
{
}
При компиляции мы получим ошибку. Правильно получим. Для работы с Foreach нам нужен метод GetEnumerator. Кроме того, класс коллекции должен наследовать IEnumerator так как этот интерфейс снабдит класс необходимыми методами и свойствами навигации и получения данных такими как
Current Reset MoveNext
Ну что напишем рабочий код?
using System;
using System.Collections;
class MainClass
{
public static void Main(string[] args)
{
ArrayString ar = new ArrayString();
foreach (string s in ar)
{
Console.WriteLine(s);
}
}
}
class ArrayString : IEnumerator
{
public IEnumerator GetEnumerator()
{
return new ArrayString();
}
public bool MoveNext()
{
i++;
if (i==3) return false;
else return true;
}
public void Reset()
{
i=-1;
}
public object Current
{
get
{
return arstring[i];
}
}
private int i=-1;
private string[] arstring = new string[3] {"hello","collection","class"};
}
И посмотрим результат работы.

С коллекциями мы уже сталкивались в ходе работы. Например при вставке элемента управления "Шаг 25 - Встраиваем элемент управления в окно". Доступа к базе данных "Шаг 13 - Попробуем OLEDB". А вот сейчас мы посмотрели как нам самим создать коллекцию.