IDTSExternalMetadataColumnCollection100.GetEnumerator Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает перечислитель, служащий для прохода по коллекции IDTSExternalMetadataColumnCollection100.
public:
System::Collections::IEnumerator ^ GetEnumerator();
[System.Runtime.InteropServices.DispId(-4)]
public System.Collections.IEnumerator GetEnumerator ();
[<System.Runtime.InteropServices.DispId(-4)>]
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
Public Function GetEnumerator () As IEnumerator
Возвращаемое значение
Перечислитель System.Collections.Generic.IEnumerator, который может проходить по коллекции столбцов внешних метаданных.
Реализации
- Атрибуты
Комментарии
Перечислители разрешают только чтение данных в коллекции. Перечислители нельзя использовать для изменения базовой коллекции.
Изначально перечислитель располагается перед первым элементом коллекции. Метод Reset
также переводит перечислитель в эту позицию. В этой позиции вызов Current
вызывает исключение. Поэтому необходимо вызвать метод MoveNext
, чтобы переместить перечислитель к первому элементу коллекции до считывания значения свойства Current
.
Current
возвращает тот же объект, пока не будет вызван метод MoveNext
или Reset
. MoveNext
задает Current
в качестве значения для следующего элемента.
По окончании перебора коллекции перечислитель помещается за последним элементом коллекции и при вызове метода MoveNext
возвращается значение false
. Если последний вызов MoveNext
возвращен, false
вызов Current
вызывает исключение. Чтобы снова задать в качестве значения свойства Current
первый элемент коллекции, можно последовательно вызвать методы Reset
иMoveNext
.
Перечислитель является допустимым до тех пор, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, перечислитель становится необратимо недействительным, а при следующем вызове MoveNext
или Reset
вызывается InvalidOperationException
. Если коллекция изменяется и MoveNext
Current
Current
возвращает заданный элемент, даже если перечислитель уже является недействительным.
У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки могут ее изменить, что приведет к тому, что перечислитель создаст исключение. Чтобы гарантировать безопасность потоков во время перечисления, можно заблокировать коллекцию во время всего перечисления или перехватывать исключения, которые возникают из-за изменений, внесенных другими потоками.