le dataTable
Dans .NET, vous pouvez rencontrer une scène qui doit convertir la liste générique ou l'objet énuméré dans l'objet DataTable. Bien qu'il n'y ait pas de méthode statique construite, cette conversion peut être effectuée et plusieurs méthodes peuvent être utilisées.
Dans la version .NET Framework 4.5 ou supérieure, vous pouvez utiliser la bibliothèque FastMember à NuGet. Cette bibliothèque offre des fonctions de méta-programmation élevées:
<code class="language-csharp">using FastMember; using System.Data; IEnumerable<sometype> data = ...; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data)) { table.Load(reader); }</code>
<code class="language-csharp">public static DataTable ToDataTable<T>(this IList<T> data) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); for (int i = 0; i < props.Count; i++) { PropertyDescriptor prop = props[i]; table.Columns.Add(prop.Name, prop.PropertyType); } foreach (T item in data) { DataRow row = table.NewRow(); for (int i = 0; i < props.Count; i++) { row[i] = props[i].GetValue(item); } table.Rows.Add(row); } return table; }</code>
Précautions de performance
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!