StringEnumerator.Reset moves the enumerator to the beginning of the collection, before the first element. After StringEnumerator.Reset, StringEnumerator.MoveNext must be called to advance the enumerator to the first element of the collection before reading the value of StringEnumerator.Current.