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

Bagaimana dengan Mudah Menukar DataReader kepada Senarai?

DDD
Lepaskan: 2025-01-16 22:21:16
asal
268 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan