Как я могу преобразовать IEnumerator<KeyValuePair<TKey, TValue>>
в IEnumerator<TKey>
, содержащий ключ из пары ключ-значение?
В более общем смысле, как я могу преобразовать IEnumerator<TSource>
в IEnumerator<TTarget>
, если есть преобразование из TSource
в TTarget
?
Обратите внимание, что этот вопрос не ищет информацию о том, как перечислить перечислитель (используйте MoveNext
и Current
) или как преобразовать перечислитель в перечисляемый (см. это обсуждение), или как преобразовать enumerable в enumerator (просто вызовите GetEnumerator()
на IEnumerable<T>
), или как для сопоставления перечислимого с другим типом (см. это обсуждение).
Я предоставил свои собственные предложенные ответы в качестве ответов, но, конечно, я рад услышать о других подходах.