Поделиться через


SortedDictionary<TKey,TValue>.Enumerator Структура

Определение

Выполняет перечисление элементов коллекции SortedDictionary<TKey,TValue>.

public: value class SortedDictionary<TKey, TValue>::Enumerator : System::Collections::Generic::IEnumerator<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionaryEnumerator
public struct SortedDictionary<TKey,TValue>.Enumerator : System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IEnumerator
    interface IDisposable
    interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDisposable
    interface IDictionaryEnumerator
    interface IEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDisposable
    interface IEnumerator
    interface IDictionaryEnumerator
type SortedDictionary<'Key, 'Value>.Enumerator = struct
    interface IEnumerator<KeyValuePair<'Key, 'Value>>
    interface IDictionaryEnumerator
    interface IEnumerator
    interface IDisposable
Public Structure SortedDictionary(Of TKey, TValue).Enumerator
Implements IDictionaryEnumerator, IEnumerator(Of KeyValuePair(Of TKey, TValue))

Параметры типа

TKey
TValue
Наследование
SortedDictionary<TKey,TValue>.Enumerator
Реализации

Комментарии

Оператор foreach языка C# (for each в C++ в For Each Visual Basic) скрывает сложность перечислителей. Поэтому рекомендуется вместо непосредственного использования перечислителя применять ключевое слово foreach.

Перечислители могут использоваться для чтения данных в коллекции, но не для ее изменения.

Изначально перечислитель располагается перед первым элементом коллекции. В этой позиции значение свойства Current не определено. Необходимо вызвать метод , MoveNext чтобы перейти перечислитель к первому элементу коллекции, прежде чем считывать значение Current.

Свойство Current возвращает тот же объект до вызова MoveNext . MoveNext задает Current в качестве значения для следующего элемента.

Если MoveNext передает конец коллекции, перечислитель располагается после последнего элемента в коллекции и MoveNext возвращает .false Если перечислитель находится в этой позиции, последующие вызовы также MoveNext возвращают false. Если последний вызов MoveNext возвращал false, Current значение не определено. Значение свойства Current не может быть повторно задано первому элементу коллекции; вместо этого следует создать новый экземпляр перечислителя.

Перечислитель является допустимым до тех пор, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, перечислитель становится безвозвратно недействительным, а следующий вызов MoveNext или IEnumerator.Reset вызывает исключение InvalidOperationException.

У перечислителя нет эксклюзивного доступа к коллекции, поэтому перечисление коллекции не является потокобезопасной процедурой. Чтобы гарантировать потокобезопасность, можно заблокировать коллекцию на время всего перечисления. Чтобы разрешить доступ к коллекции из нескольких потоков для чтения и записи, необходимо реализовать собственную синхронизацию.

Используемые по умолчанию реализации коллекций в пространстве имен System.Collections.Generic не синхронизированы.

Свойства

Current

Возвращает элемент, расположенный в текущей позиции перечислителя.

Методы

Dispose()

Освобождает все ресурсы, занятые модулем SortedDictionary<TKey,TValue>.Enumerator.

MoveNext()

Перемещает перечислитель к следующему элементу коллекции SortedDictionary<TKey,TValue>.

Явные реализации интерфейса

IDictionaryEnumerator.Entry

Возвращает элемент, расположенный в текущей позиции перечислителя, в виде структуры DictionaryEntry.

IDictionaryEnumerator.Key

Возвращает ключ элемента, расположенного в текущей позиции перечислителя.

IDictionaryEnumerator.Value

Возвращает значение элемента, расположенного в текущей позиции перечислителя.

IEnumerator.Current

Возвращает элемент, расположенный в текущей позиции перечислителя.

IEnumerator.Reset()

Устанавливает перечислитель в его начальное положение, т. е. перед первым элементом коллекции.

Применяется к

См. также раздел