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());
}));

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s