"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso converter com eficiência um DataReader em uma lista no .NET?

Como posso converter com eficiência um DataReader em uma lista no .NET?

Publicado em 2025-02-02
Navegar:944

How Can I Efficiently Convert a DataReader into a List in .NET?

Dados de processamento eficiente: convertem DataReader para listar

Ao processar dados no ambiente .NET, pode ser necessário converter o DataReader (um fluxo de dados que só lê adiante) para formatos mais fáceis de gerenciar, como a lista . Essa conversão permite acessar e processar dados estruturados com mais eficiência. Solução: Extension

Um método de conversão é usar o método de expansão. O exemplo é o seguinte:

public static ienumerable selecione (este leitor de idareader, Func projeto) {{ While (leitor.read ()) {{ Projeto de retorno de rendimento (leitor); } } Este método de expansão permite selecionar dados do DataReader com uma função de projeção e convertê -los em iEnumeration

.

Como usar o método de uso
public static IEnumerable Select(this IDataReader reader,
                                       Func projection)
{
    while (reader.Read())
    {
        yield return projection(reader);
    }
}
, você pode usar o seguinte código:

usando (idareader leitor = ...) {{ List clientes = leitor.select (r => novo cliente { CustomerID = r ["id"] é dbnull? Cusomername = r ["nome"] é dbnull? }). }

Este exemplo converte a linha no DataReader em uma lista do objeto do cliente. Método alternativo: Método especial para tipos físicos

ou, você pode criar um método estático dedicado na entidade do cliente:

cliente estático public static fromDatareader (leitor idatareader) {...}
using (IDataReader reader = ...)
{
    List customers = reader.Select(r => new Customer {
        CustomerId = r["id"] is DBNull ? null : r["id"].ToString(),
        CustomerName = r["name"] is DBNull ? null : r["name"].ToString()
    }).ToList();
}

usando este método, você pode simplificar o processo de conversão:

usando (idareader leitor = ...) {{ Lista CLIENTES = Reader.Select Com essas tecnologias, você pode converter dados eficientemente no DataReader em List

para usar as funções poderosas do LINQ para operação e processamento adicionais de dados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3