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


SortedSet<T>.Enumerator Структура

Определение

Перечисляет элементы объекта SortedSet<T>.

public: value class SortedSet<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class SortedSet<T>::Enumerator : System::Collections::Generic::IEnumerator<T>, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Serializable]
public struct SortedSet<T>.Enumerator : System.Collections.Generic.IEnumerator<T>, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type SortedSet<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
type SortedSet<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
    interface IDeserializationCallback
    interface ISerializable
[<System.Serializable>]
type SortedSet<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IDisposable
    interface IEnumerator
    interface ISerializable
    interface IDeserializationCallback
Public Structure SortedSet(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure SortedSet(Of T).Enumerator
Implements IDeserializationCallback, IEnumerator(Of T), ISerializable

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

T
Наследование
SortedSet<T>.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()

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

MoveNext()

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

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

IDeserializationCallback.OnDeserialization(Object)

Реализует интерфейс ISerializable и вызывает событие десериализации при завершении десериализации.

IEnumerator.Current

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

IEnumerator.Reset()

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

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Реализует интерфейс ISerializable и возвращает данные, необходимые для сериализации экземпляра класса SortedSet<T>.

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