<.> Dans le .NET, la liste a été convertie en un tableau de données
Dans le développement .NET, la conversion des listes génériques en tables de données est une demande commune. Ce qui suit est de savoir comment utiliser FastMember pour implémenter cette opération:
L'API de méta-programmation
FastMember a optimisé ce processus pour obtenir des performances maximales. Vous pouvez spécifier un membre spécifique que vous souhaitez inclure:<code class="language-csharp">using FastMember; IEnumerable<sometype> data = ...; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data)) { table.Load(reader); }</code>
Méthode alternative
<code class="language-csharp">using FastMember; IEnumerable<sometype> data = ...; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { table.Load(reader); }</code>
Réflexion
Afin d'améliorer les performances, vous pouvez activer l'hyperdéscripteur:
<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++) { PropertyDescriptor prop = props[i]; row[i] = prop.GetValue(item); } table.Rows.Add(row); } return table; }</code>
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!