Home > Backend Development > C++ > How Can I Efficiently Convert Lists to DataTables in .NET?

How Can I Efficiently Convert Lists to DataTables in .NET?

Susan Sarandon
Release: 2025-01-30 21:51:12
Original
562 people have browsed it

How Can I Efficiently Convert Lists to DataTables in .NET?

<.> In the .NET, the list was converted into a data table

In the .NET development, converting generic lists into data tables is a common demand. The following is how to use FastMember to implement this operation:

Fastmember's meta -programming API optimized this process to achieve maximum performance. You can specify a specific member you want to include:
<code class="language-csharp">using FastMember;

IEnumerable<sometype> data = ...;
DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data))
{
    table.Load(reader);
}</code>
Copy after login

Alternative method
<code class="language-csharp">using FastMember;

IEnumerable<sometype> data = ...;
DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
    table.Load(reader);
}</code>
Copy after login

reflection

In order to improve performance, you can enable Hyperdescriptor:

<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++)
        {
            PropertyDescriptor prop = props[i];
            row[i] = prop.GetValue(item);
        }
        table.Rows.Add(row);
    }
    return table;
}</code>
Copy after login
Please note that the above code fragments are for reference only, and the actual application may need to be adjusted according to the specific situation. The method to choose depends on your performance requirements and code complexity preferences. FastMember usually performs better in terms of performance, and the reflection method is easier to understand and maintain, but the performance may be lower.

The above is the detailed content of How Can I Efficiently Convert Lists to DataTables in .NET?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template