Merhaba arkadaşlar,
Elimizde ki bir listeyi, dataTable dönüştürmek için aşağıda ki kodları kullanmamız yeterlidir.
Kütüphaneye using System.Reflection; eklemeyi unutmayalım.
Kaynak :stackoverflow
Herhangi bir tipte ki listeyi, bu methoda göndermemiz yeterli oluyor. Gönderdiğimiz liste geriye DataTable olarak dönüyor.
public static System.Data.DataTable ConvertToDataTable(List items) { System.Data.DataTable dataTable = new System.Data.DataTable(typeof(T).Name); //Get all the properties PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in Props) { //Defining type of data column gives proper data table var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType); //Setting column names as Property names dataTable.Columns.Add(prop.Name, type); } foreach (T item in items) { var values = new object[Props.Length]; for (int i = 0; i < Props.Length; i++) { //inserting property values to datatable rows values[i] = Props[i].GetValue(item, null); } dataTable.Rows.Add(values); } //put a breakpoint here and check datatable return dataTable; }