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
- Наследование
- Атрибуты
- Реализации
Комментарии
Оператор 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>. |