Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menukar IEnumerable dengan Cekap kepada DataTable dalam C#?
Tukar IEnumerable kepada DataTable dengan cekap dalam C#
Menukar IEnumerable kepada DataTable membolehkan pembangun memproses data dalam format jadual berstruktur. Walau bagaimanapun, penyelesaian sedia ada sering bergantung pada pendekatan berasaskan refleksi yang tidak cekap. Soalan ini cuba mencari alternatif yang lebih cekap.
Pertama, coretan kod dalam jawapan yang disediakan menyediakan kaedah sambungan yang berguna:
<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>
Kaedah sambungan ini menyediakan cara yang mudah dan cekap untuk menukar IEnumerable
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar IEnumerable dengan Cekap kepada DataTable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!