in der .NET -Entwicklung ist die Konvertierung von generischen Listen in Datentabellen eine häufige Nachfrage. Im Folgenden wird Fastmember verwendet, um diesen Vorgang zu implementieren:
Die Meta -Programmierungs -API von Fastmember hat diesen Prozess optimiert, um eine maximale Leistung zu erzielen. Sie können ein bestimmtes Mitglied angeben, das Sie einschließen möchten:
<code class="language-csharp">using FastMember; IEnumerable<sometype> data = ...; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data)) { table.Load(reader); }</code>
Alternative Methode
<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>
Reflexion
Um die Leistung zu verbessern, können Sie Hyperdescriptor aktivieren:
Bitte beachten Sie, dass die obigen Codefragmente nur als Referenz dienen und die tatsächliche Anwendung möglicherweise entsprechend der spezifischen Situation angepasst werden muss. Die ausgewählte Methode hängt von Ihren Leistungsanforderungen und den Präferenzen der Codekomplexität ab. Fastmember funktioniert in der Regel in Bezug auf die Leistung besser, und die Reflexionsmethode ist leichter zu verstehen und zu warten, aber die Leistung kann niedriger sein.<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>
Das obige ist der detaillierte Inhalt vonWie kann ich Listen effizient in DataTables in .NET konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!