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;




return table;


Leave a Reply

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

You are commenting using your 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