Rumah > pembangunan bahagian belakang > C++ > Bagaimana cara menukar senarai generik dengan cekap ke datatif di C#?

Bagaimana cara menukar senarai generik dengan cekap ke datatif di C#?

Barbara Streisand
Lepaskan: 2025-01-30 21:56:11
asal
872 orang telah melayarinya

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

C# Medium -kecekapan tinggi menukarkan senarai generik ke dalam datable

Dalam pembangunan perisian, data sering diperlukan dalam format berstruktur. DataTable adalah struktur data biasa yang menyediakan borang data. Walau bagaimanapun, anda mungkin menghadapi situasi di mana data yang perlu diproses disimpan dalam senarai generik atau objek penghitungan. Dalam kes ini, satu kaedah diperlukan untuk menukar senarai atau objek yang boleh diakses ke DataTable.

Gunakan FastMember untuk membuat penukaran yang cekap

Anda boleh menggunakan perpustakaan FastMember di NuGet untuk mendapatkan penyelesaian yang cekap dan mudah. Menggunakan FastMember, anda boleh menggunakan kod berikut untuk melaksanakan penukaran:

realisasi penukaran tersuai

<code class="language-csharp">IEnumerable<sometype> data = ...;
DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data))
{
    table.Load(reader);
}</code>
Salin selepas log masuk

Jika anda lebih suka kaedah penukaran tersuai, anda boleh menggunakan fungsi hyperdescriptor dalam refleksi atau .NET 2.0 untuk membuat databable dari senarai. Ini adalah contoh pelaksanaan:

Langkah berjaga -jaga prestasi

<code class="language-csharp">public static DataTable ToDataTable<T>(this IList<T> data)
{
    PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
    DataTable table = new DataTable();
    for (int i = 0; i < props.Count; i++)
    {
        PropertyDescriptor prop = props[i];
        table.Columns.Add(prop.Name, prop.PropertyType);
    }
    foreach (T item in data)
    {
        DataRow row = table.NewRow();
        for (int i = 0; i < props.Count; i++)
        {
            row[i] = props[i].GetValue(item);
        }
        table.Rows.Add(row);
    }
    return table;
}</code>
Salin selepas log masuk
Apabila menilai kaedah penukaran yang berbeza, perlu mempertimbangkan kesan prestasi. Penyelesaian FastMember memberikan kelajuan terbaik kerana fungsi meta -programmingnya. Walaupun pelaksanaan adat adalah perlahan, ia masih merupakan pilihan yang berkesan untuk set data yang lebih kecil.

Kesimpulan

Menukar senarai generik atau objek penghitungan kepada DataTable adalah tugas yang sama dalam pengaturcaraan C#. Dengan menggunakan perpustakaan FastMember atau merealisasikan penukaran tersuai, pemaju dapat melaksanakan penukaran ini dengan cekap.

Atas ialah kandungan terperinci Bagaimana cara menukar senarai generik dengan cekap ke datatif di 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