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

Bagaimana cara menukar senarai generik dengan cekap ke data dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-30 21:41:12
asal
547 orang telah melayarinya

How to Efficiently Convert Generic Lists to DataTables in C#?

dengan cekap mengubah senarai generik ke dalam data dalam c#

Banyak pemaju C# menghadapi cabaran untuk menukar senarai generik kepada datatables. Walaupun refleksi menawarkan penyelesaian, kaedah yang lebih cekap wujud. Artikel ini meneroka pendekatan yang optimum.

memanfaatkan fastmember untuk kelajuan

3

alternatif pra -.net 3.5: Refleksi dan Hyperdescriptor

1

2

3

4

5

IEnumerable<sometype> data = ...;

DataTable table = new DataTable();

using(var reader = ObjectReader.Create(data)) {

    table.Load(reader);

}

Salin selepas log masuk
Sebelum .NET 3.5, pemaju bergantung pada refleksi atau hyperdescriptor (tersedia dalam .net 2.0):

Pengoptimuman Prestasi: Hyperdescriptor

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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;

}

Salin selepas log masuk
Untuk memaksimumkan prestasi, membolehkan Hyperdescriptor untuk jenis objek adalah penting. Ujian penanda aras mendedahkan penambahbaikan kelajuan yang besar:

Kaedah Standard: 27179 ms

    Hyperdescriptor Enabled: 6997 MS
  • Dengan menggunakan teknik -teknik ini, pemaju dapat meningkatkan kecekapan senarai generik menukarkan kepada data dalam aplikasi C# mereka.

Atas ialah kandungan terperinci Bagaimana cara menukar senarai generik dengan cekap ke data dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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