Convertendo uma DataRow em um Objeto

Em um projeto em qual estou trabalhando, precisei consumir um WebService e, para variar, ele retorna um Dataset e DataTables. Como em minha aplicação eu trabalho com objetos mais específicos, então tentei criar um método que convertesse cada uma das DataRows em um desses objetos e, para facilitar o trabalho, criei uma classe que é composta com alguns métodos estáticos e, entre eles, existe um que chamei de Converter:

public class CollectionHelper
{
    public static IEnumerable<TOutput> Converter<TInput, TOutput>(IEnumerable coll, Converter<TInput, TOutput> converter)
    {
        foreach (object o in coll)
        {
            yield return converter((TInput)o);
        }
    }
}

E para utilizá-lo:

IEnumerable<Usuario> result = CollectionHelper.Converter<DataRow, Usuario>(dt.Rows,
        new Converter<DataRow, Usuario>(delegate(DataRow dr)
{
    return new Usuario(dr[“Nome”].ToString());
}));