Convertir efficacement IEnumerable en DataTable en C#
La conversion de IEnumerable en DataTable permet aux développeurs de traiter les données dans un format tabulaire structuré. Cependant, les solutions existantes reposent souvent sur des approches inefficaces basées sur la réflexion. Cette question cherche à trouver une alternative plus efficace.
Tout d'abord, l'extrait de code dans la réponse fournie fournit une méthode d'extension utile :
<code class="language-csharp">public static DataTable ToDataTable<T>(this IEnumerable<T> items) { // 使用类型名称初始化DataTable var table = new DataTable(typeof(T).Name); // 获取类型的公共属性 PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); // 将属性作为列添加到DataTable foreach (var property in properties) { var propertyType = property.PropertyType; // 处理可空类型 if (propertyType.IsGenericType && propertyType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) { propertyType = Nullable.GetUnderlyingType(propertyType); } table.Columns.Add(property.Name, propertyType); } // 将每个T的属性值作为行添加到DataTable foreach (var item in items) { var values = new object[properties.Length]; for (int i = 0; i < properties.Length; i++) { values[i] = properties[i].GetValue(item); } table.Rows.Add(values); } return table; }</code>
Cette méthode d'extension fournit un moyen pratique et efficace de convertir IEnumerable
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!