SortedDictionary<TKey,TValue>.ValueCollection.Enumerator Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перечисляет элементы объекта SortedDictionary<TKey,TValue>.ValueCollection.
public: value class SortedDictionary<TKey, TValue>::ValueCollection::Enumerator : System::Collections::Generic::IEnumerator<TValue>
public struct SortedDictionary<TKey,TValue>.ValueCollection.Enumerator : System.Collections.Generic.IEnumerator<TValue>
type SortedDictionary<'Key, 'Value>.ValueCollection.Enumerator = struct
interface IEnumerator<'Value>
interface IEnumerator
interface IDisposable
type SortedDictionary<'Key, 'Value>.ValueCollection.Enumerator = struct
interface IEnumerator<'Value>
interface IDisposable
interface IEnumerator
Public Structure SortedDictionary(Of TKey, TValue).ValueCollection.Enumerator
Implements IEnumerator(Of TValue)
Параметры типа
- TKey
- TValue
- Наследование
- Реализации
Комментарии
Оператор foreach C# (For Each в Visual Basic) скрывает сложность перечислителей. Поэтому рекомендуется использовать foreach вместо непосредственного управления перечислителем. Этот тип реализует IEnumerator<T> интерфейс.
Перечислители можно использовать для чтения данных в коллекции, но их нельзя использовать для изменения базовой коллекции.
Изначально перечислитель размещается перед первым элементом в коллекции. На этой позиции Current не определен. Перед чтением значения Currentнеобходимо вызвать MoveNext метод, чтобы перенаставить перечислитель к первому элементу коллекции.
Свойство Current возвращает тот же объект до MoveNext вызова. MoveNext задает Current для следующего элемента.
Если MoveNext передает конец коллекции, перечислитель размещается после последнего элемента в коллекции и MoveNext возвращается false. Если перечислитель находится в этой позиции, последующие вызовы MoveNext также возвращаются false. Если последний вызов MoveNext возвращен false, Current не определен. Нельзя снова задать Current первый элемент коллекции. Вместо этого необходимо создать новый экземпляр перечислителя.
Перечислитель остается допустимым, пока коллекция остается неизменной. Если изменения вносятся в коллекцию, например добавление, изменение или удаление элементов, перечислитель неустранимо недопустим, а следующий вызов MoveNext или вызов вызывает InvalidOperationExceptionисключениеIEnumerator.Reset.
Перечислитель не имеет монопольного доступа к коллекции; Таким образом, перечисление через коллекцию по сути не является потокобезопасной процедурой. Чтобы гарантировать безопасность потоков во время перечисления, можно заблокировать коллекцию во время всего перечисления. Чтобы разрешить доступ к коллекции несколькими потоками для чтения и записи, необходимо реализовать собственную синхронизацию.
Реализации коллекций по умолчанию в System.Collections.Generic пространстве имен не синхронизируются.
Свойства
| Имя | Описание |
|---|---|
| Current |
Возвращает элемент в текущей позиции перечислителя. |
Методы
| Имя | Описание |
|---|---|
| Dispose() |
Освобождает все ресурсы, используемые параметром SortedDictionary<TKey,TValue>.ValueCollection.Enumerator. |
| MoveNext() |
Перемещает перечислитель к следующему элементу SortedDictionary<TKey,TValue>.ValueCollectionэлемента . |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IEnumerator.Current |
Возвращает элемент в текущей позиции перечислителя. |
| IEnumerator.Reset() |
Задает перечислителю начальную позицию, которая перед первым элементом в коллекции. |