Como posso usar IEnumerator.Reset ()?

Como exatamente é a maneira correta de ligar paraIEnumerator.Reset?

A documentação diz:

OReset método @ é fornecido para interoperabilidade COM. Não precisa necessariamente ser implementado; em vez disso, o implementador pode simplesmente lançar umNotSupportedException.

Ok, então isso significa que eu não devo chamá-lo?

Estáassi tentador a usar exceções para controle de fluxo:

using (enumerator = GetSomeExpensiveEnumerator())
{
    while (enumerator.MoveNext()) { ... }

    try { enumerator.Reset(); } //Try an inexpensive method
    catch (NotSupportedException)
    { enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one

    while (enumerator.MoveNext()) { ... }
}

É assim que devemos usá-lo? Ou não devemos usá-lo de código gerenciado?

questionAnswers(3)

yourAnswerToTheQuestion