Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menukar Jadual Data dengan Cekap kepada Senarai Generik dalam C#?

Bagaimanakah Saya Boleh Menukar Jadual Data dengan Cekap kepada Senarai Generik dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-18 16:56:14
asal
335 orang telah melayarinya

How Can I Efficiently Convert a DataTable to a Generic List in C#?

Menukar Jadual Data kepada Senarai Generik dalam C#

Beberapa kaedah wujud untuk menukar DataTable kepada senarai generik dalam C#. Pendekatan biasa melibatkan mengulang setiap baris dan menambahkannya pada senarai.

<code class="language-C#">DataTable dt = CreateDataTableInSomeWay();

List<DataRow> list = new List<DataRow>();
foreach (DataRow dr in dt.Rows)
{
    list.Add(dr);
}</code>
Salin selepas log masuk

Kaedah yang Lebih Cekap: Kaedah Sambungan

.NET 3.5 dan versi yang lebih baru menawarkan penyelesaian yang lebih cekap menggunakan kaedah sambungan daripada kelas DataTableExtensions. Kaedah AsEnumerable() mengubah Jadual Data menjadi IEnumerable<DataRow>, yang kemudiannya boleh ditukar dengan mudah kepada List<DataRow> menggunakan ToList().

<code class="language-C#">IEnumerable<DataRow> sequence = dt.AsEnumerable();

// Or, more directly:
using System.Linq;
...
List<DataRow> list = dt.AsEnumerable().ToList();</code>
Salin selepas log masuk

Pendekatan berasaskan LINQ ini mengelakkan gelung eksplisit, menghasilkan kod yang lebih bersih dan berkemungkinan lebih pantas.

Analisis Prestasi

Apabila memilih kaedah penukaran, prestasi adalah penting. Lelaran baris demi baris boleh menjadi perlahan dengan Jadual Data yang besar. Gabungan kaedah AsEnumerable() dan ToList() secara amnya menawarkan prestasi unggul kerana pelaksanaannya yang dioptimumkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Jadual Data dengan Cekap kepada Senarai Generik dalam C#?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan