It is not used very often, but the analogy is the IEnumerator<T>interface:
var enumerator = labels.GetEnumerator();
.NET IEnumeratordiffers from Java in the Iteratorfollowing:
Iterator , ( , , hasNext false), IEnumerator collection ( MoveNext false)Iterator hasNext, IEnumerator MoveNextIterator next, IEnumerator MoveNextIterator next , IEnumerator Current MoveNextIterator Java remove, . IEnumerator
, Java - :
it = labels.iterator();
while (it.hasNext())
{
elem = it.next();
}
#:
en = labels.GetEnumerator();
while (en.MoveNext())
{
elem = en.Current;
}
, labels ( IEnumerable<T>), :
foreach (var label in labels)
{
}
, , IEnumerable<T> ( ):
IEnumerable<Label> it = labels;
, IEnumerable<T> , Iterator Java.
( , it , ):
IEnumerable<Label> it = labels.ToArray();
// or Label[] it = labels.ToArray();
// or better: var it = labels.ToArray();