Struct CharArraySet.Enumerator
Enumerates the elements of a CharArraySet object.
This implementation provides direct access to the char[] array of the underlying collection as well as convenience properties for converting to string and J2N.Text.ICharSequence.Inherited Members
Namespace: Lucene.Net.Analysis.Util
Assembly: Lucene.Net.Analysis.Common.dll
Syntax
public readonly struct CharArraySet.Enumerator : IEnumerator<string>, IDisposable, IEnumerator
Remarks
The foreach
statement of the C# language (for each
in C++, For Each
in Visual Basic)
hides the complexity of enumerators. Therefore, using foreach
is recommended instead of directly manipulating the enumerator.
false
. When the enumerator is at this position, subsequent calls to MoveNext()
also return false
. If the last call to MoveNext() returned false,
Current is undefined. You cannot set Current
to the first element of the collection again; you must create a new enumerator object instead.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to MoveNext() or Reset() throws an
InvalidOperationException.
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
This method is an O(1) operation.
Properties
Current
Gets the current value as a newly created string object.
Declaration
public string Current { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
The foreach
statement of the C# language (for each
in C++, For Each
in Visual Basic)
hides the complexity of enumerators. Therefore, using foreach
is recommended instead of directly manipulating the enumerator.
false
. When the enumerator is at this position, subsequent calls to MoveNext()
also return false
. If the last call to MoveNext() returned false,
Current is undefined. You cannot set Current
to the first element of the collection again; you must create a new enumerator object instead.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to MoveNext() or Reset() throws an
InvalidOperationException.
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
This method is an O(1) operation.
CurrentValue
Gets the current value... do not modify the returned char[].
Declaration
public char[] CurrentValue { get; }
Property Value
Type | Description |
---|---|
char[] |
Remarks
The foreach
statement of the C# language (for each
in C++, For Each
in Visual Basic)
hides the complexity of enumerators. Therefore, using foreach
is recommended instead of directly manipulating the enumerator.
false
. When the enumerator is at this position, subsequent calls to MoveNext()
also return false
. If the last call to MoveNext() returned false,
Current is undefined. You cannot set Current
to the first element of the collection again; you must create a new enumerator object instead.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to MoveNext() or Reset() throws an
InvalidOperationException.
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
This method is an O(1) operation.
CurrentValueCharSequence
Gets the current value as a J2N.Text.CharArrayCharSequence.
Declaration
public ICharSequence CurrentValueCharSequence { get; }
Property Value
Type | Description |
---|---|
ICharSequence |
Remarks
The foreach
statement of the C# language (for each
in C++, For Each
in Visual Basic)
hides the complexity of enumerators. Therefore, using foreach
is recommended instead of directly manipulating the enumerator.
false
. When the enumerator is at this position, subsequent calls to MoveNext()
also return false
. If the last call to MoveNext() returned false,
Current is undefined. You cannot set Current
to the first element of the collection again; you must create a new enumerator object instead.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to MoveNext() or Reset() throws an
InvalidOperationException.
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
This method is an O(1) operation.
Methods
Dispose()
Releases all resources used by the CharArraySet.Enumerator.
Declaration
public void Dispose()
Remarks
The foreach
statement of the C# language (for each
in C++, For Each
in Visual Basic)
hides the complexity of enumerators. Therefore, using foreach
is recommended instead of directly manipulating the enumerator.
false
. When the enumerator is at this position, subsequent calls to MoveNext()
also return false
. If the last call to MoveNext() returned false,
Current is undefined. You cannot set Current
to the first element of the collection again; you must create a new enumerator object instead.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to MoveNext() or Reset() throws an
InvalidOperationException.
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
This method is an O(1) operation.
MoveNext()
Advances the enumerator to the next element of the CharArraySet.
Declaration
public bool MoveNext()
Returns
Type | Description |
---|---|
bool |
|
Remarks
After an enumerator is created, the enumerator is positioned before the first element in the collection, and the first call to the MoveNext() method advances the enumerator to the first element of the collection.
If MoveNext() passes the end of the collection, the enumerator is positioned after the last element in the collection and MoveNext() returnsfalse
. When the enumerator is at this position,
subsequent calls to MoveNext() also return false
.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the
collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated
and the next call to MoveNext() or Reset() throws an
InvalidOperationException.
Exceptions
Type | Condition |
---|---|
InvalidOperationException | The collection was modified after the enumerator was created. |