Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menukar IEnumerable dengan Cekap kepada DataTable dalam C#?

Bagaimanakah Saya Boleh Menukar IEnumerable dengan Cekap kepada DataTable dalam C#?

Susan Sarandon
Lepaskan: 2025-01-20 00:27:09
asal
334 orang telah melayarinya

How Can I Efficiently Convert an IEnumerable to a DataTable in C#?

Tukar IEnumerable kepada DataTable dengan cekap dalam C#

Menukar IEnumerable kepada DataTable membolehkan pembangun memproses data dalam format jadual berstruktur. Walau bagaimanapun, penyelesaian sedia ada sering bergantung pada pendekatan berasaskan refleksi yang tidak cekap. Soalan ini cuba mencari alternatif yang lebih cekap.

Pertama, coretan kod dalam jawapan yang disediakan menyediakan kaedah sambungan yang berguna:

<code class="language-csharp">public static DataTable ToDataTable<T>(this IEnumerable<T> items)
{
    // 使用类型名称初始化DataTable
    var table = new DataTable(typeof(T).Name);

    // 获取类型的公共属性
    PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

    // 将属性作为列添加到DataTable
    foreach (var property in properties)
    {
        var propertyType = property.PropertyType;

        // 处理可空类型
        if (propertyType.IsGenericType && propertyType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
        {
            propertyType = Nullable.GetUnderlyingType(propertyType);
        }

        table.Columns.Add(property.Name, propertyType);
    }

    // 将每个T的属性值作为行添加到DataTable
    foreach (var item in items)
    {
        var values = new object[properties.Length];
        for (int i = 0; i < properties.Length; i++)
        {
            values[i] = properties[i].GetValue(item);
        }
        table.Rows.Add(values);
    }

    return table;
}</code>
Salin selepas log masuk

Kaedah sambungan ini menyediakan cara yang mudah dan cekap untuk menukar IEnumerable kepada Jadual Data. Dengan mengendalikan jenis nullable dengan teliti, ia memastikan integriti data dan membolehkan nilai diambil menggunakan nama lajur yang ditaip kuat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar IEnumerable dengan Cekap kepada DataTable 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