[c#] Liste zur Datentabelle
public static DataTable ListToDataTable<T>(List<T> entitys)
{
if (entitys == null || entitys.Count < 1)
{
return new DataTable();
}
Type entityType = entitys[0].GetType();
PropertyInfo[] entityProperties = entityType.GetProperties();
DataTable dt = new DataTable("dt");
for (int i = 0; i < entityProperties.Length; i++)
{
dt.Columns.Add(entityProperties[i].Name);
}
foreach (object entity in entitys)
{
if (entity.GetType() != entityType)
{
throw new Exception("要转换的集合元素类型不一致");
}
DataRow dr=new DataRow();
dt.Rows.Add(dr);
int rowCount=dt.Rows.Count();
object[] entityValues = new object[entityProperties.Length];
for (int i = 0; i < entityProperties.Length; i++)
{
entityValues[i] = entityProperties[i].GetValue(entity, null);
dt.Rows[rowCount].[i]=entityValues[i];
}
}
return dt;
}
Sehen Sie sich die Originalversion hier an. Ich habe einige Änderungen basierend auf der Originalversion hinzugefügt. Die durch die Originalreflexion generierte Tabelle ist ein Objekt für jede Spalte.