Heim >Backend-Entwicklung >C++ >Wie kann ich ein IEnumerable in C# effizient in eine DataTable konvertieren?
Effiziente Konvertierung von IEnumerable in DataTable in C#
Durch die Konvertierung von IEnumerable in DataTable können Entwickler Daten in einem strukturierten Tabellenformat verarbeiten. Bestehende Lösungen basieren jedoch häufig auf ineffizienten reflexionsbasierten Ansätzen. Mit dieser Frage soll eine effizientere Alternative gefunden werden.
Erstens bietet der Codeausschnitt in der bereitgestellten Antwort eine nützliche Erweiterungsmethode:
<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>
Diese Erweiterungsmethode bietet eine bequeme und effiziente Möglichkeit, IEnumerable
Das obige ist der detaillierte Inhalt vonWie kann ich ein IEnumerable in C# effizient in eine DataTable konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!