Convert List to DataTable in C#

public static DataTable ListToDataTable<T>(IList<T> list)

{

DataTable table = new DataTable();

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));

for (int i = 0; i < properties.Count; i++)

{

table.Columns.Add(properties[i].Name, Nullable.GetUnderlyingType(properties[i].PropertyType) ?? properties[i].PropertyType);

}

object[] values = new object[properties.Count];

foreach (T item in list)

{

for (int i = 0; i < values.Length; i++)

{

values[i] = properties[i].GetValue(item) ?? DBNull.Value;

}

table.Rows.Add(values);

}

return table;

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s