Heim >Backend-Entwicklung >C++ >Wie konvertiert man ein IEnumerable effizient in eine DataTable in C#?
Effiziente Konvertierung von IEnumerable in DataTable in C#
In diesem Artikel wird untersucht, wie IEnumerable-Sammlungen effizient in DataTables konvertiert werden. Obwohl Reflexion eine Methode bietet, ist sie ineffizient.
Der folgende Code bietet eine optimiertere Lösung:
<code class="language-csharp">public static DataTable ToDataTable<T>(this IEnumerable<T> items) { // 创建DataTable并收集属性 DataTable table = new DataTable(typeof(T).Name); PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); // 从属性添加列 foreach (var prop in props) { Type propType = prop.PropertyType; // 处理可空类型 if (propType.IsGenericType && propType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))) propType = new NullableConverter(propType).UnderlyingType; table.Columns.Add(prop.Name, propType); } // 从属性值添加数据行 foreach (var item in items) { object[] values = new object[props.Length]; for (int i = 0; i < props.Length; i++) { values[i] = props[i].GetValue(item, null); } table.Rows.Add(values); } return table; }</code>
Diese Erweiterungsmethode verarbeitet Konvertierungen effizient, einschließlich der Verarbeitung von Nullable-Werten. Die Berücksichtigung von Nullable-Typen gewährleistet Datenintegrität und zuverlässige Ergebnisse.
Das obige ist der detaillierte Inhalt vonWie konvertiert man ein IEnumerable effizient in eine DataTable in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!