Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
start:visualstudio2019:programmieren:dotnet:component:programmierbeispiele [2022/12/19 16:04]
wikiadmin [DataTable and DataSet]
start:visualstudio2019:programmieren:dotnet:component:programmierbeispiele [2022/12/19 16:32] (aktuell)
wikiadmin [From IList<T> to DataTable]
Zeile 87: Zeile 87:
 [[https://stackoverflow.com/questions/701223/net-convert-generic-collection-to-datatable|Example B]] [[https://stackoverflow.com/questions/701223/net-convert-generic-collection-to-datatable|Example B]]
 ==== From IList<T> to DataTable ==== ==== From IList<T> to DataTable ====
 +
 +<code c# [enable_line_numbers="true",highlight_lines_extra="12"]>
 +public DataTable ConvertToDataTable<T>(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;
 +
 +    }
 +</code>