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


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 в Visual Basic) скрывает сложность перечислителей. Поэтому рекомендуется использовать foreach вместо непосредственного управления перечислителем.

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

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

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

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

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

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

Реализации коллекций по умолчанию в 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>.

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