ExtensionMethod.NET Home of 818 C#, Visual Basic, F# and Javascript extension methods

List To DataTable

List To Datatable

Source

public static DataTable ToDataTable<T>(this IList<T> data)
{
    PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
    DataTable table = new DataTable();
    foreach (PropertyDescriptor prop in properties)
        table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
    foreach (T item in data)
    {
        DataRow row = table.NewRow();
        foreach (PropertyDescriptor prop in properties)
            row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
        table.Rows.Add(row);
    }
    return table;
}

Example

List<string> myList = New String[]{"a","b","c","d"}.ToList();
DataTable dt = new DataTable();
dt = myList.ToDataTable();

Author: Keyur Panchal

Submitted on: 11 aug 2015

Language: C#

Type: DataTable, C#, List

Views: 5465