Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan Mudah Menukar DataReader kepada Senarai?

Bagaimana dengan Mudah Menukar DataReader kepada Senarai?

DDD
DDDasal
2025-01-16 22:21:16271semak imbas

How to Easily Convert a DataReader to a List?

Tukar DataReader ke Senarai dengan cekap

DataReader mudah untuk menyimpan data, tetapi kadangkala perlu memproses data dalam format lain (seperti senarai). Menukarkan DataReader kepada senarai yang ditaip kuat, seperti Senarai, boleh menyusahkan, tetapi ia tidak semestinya begitu.

Salah satu cara untuk memudahkan proses adalah dengan membuat kaedah sambungan untuk mengendalikan penukaran. Contohnya adalah seperti berikut:

<code class="language-csharp">public static IEnumerable<T> Select<T>(this IDataReader reader,
                                       Func<IDataReader, T> projection)
{
    while (reader.Read())
    {
        yield return projection(reader);
    }
}</code>

Kaedah ini menggunakan Func yang mentakrifkan cara untuk menukar setiap baris DataReader menjadi contoh jenis T. Anda kemudiannya boleh menggunakan kaedah ToList() LINQ untuk menukar hasil kepada Senarai.

Pendekatan lain ialah mencipta kaedah dalam jenis sasaran (Pelanggan) yang menukar daripada DataReader. Contohnya:

<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>

Menggunakan kaedah ini, anda hanya boleh mendapatkan semula Senarai menggunakan kod berikut:

<code class="language-csharp">using (IDataReader reader = ...)
{
    List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader)
                                     .ToList();
}</code>

Atas ialah kandungan terperinci Bagaimana dengan Mudah Menukar DataReader kepada Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn