Maison >développement back-end >C++ >Comment puis-je convertir efficacement les listes génériques en données dans .NET?
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>Cette fonction peut appeler n'importe quelle liste générique pour générer une DataTable basée sur un attribut d'objet de liste.
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!