Прочитать на английском

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


IEnumerator.Current Свойство

Определение

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

C#
public object Current { get; }
C#
public object? Current { get; }

Значение свойства

Элемент коллекции, соответствующий текущей позиции перечислителя.

Примеры

В следующем примере кода демонстрируется реализация IEnumerator интерфейсов для пользовательской коллекции. В этом примере Current не вызывается явным образом, но реализуется для поддержки foreach использования (for each в Visual Basic). Этот пример кода является частью более крупного примера для IEnumerator интерфейса .

C#
// When you implement IEnumerable, you must also implement IEnumerator.
public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}

Комментарии

Current значение не определено при любом из следующих условий:

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

  • Последний вызов MoveNext возвращаемого falseметода , который указывает конец коллекции.

  • Перечислитель становится недействительным из-за изменений, внесенных в коллекцию, таких как добавление, изменение или удаление элементов.

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

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел