using System; using System.Collections.Generic; using System.Data; using System.Reflection; namespace HMI.Base { public class DtConverter { public static void DoConvert(DataTable dataTable, ICollection target) where T : new() { var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (DataRow row in dataTable.Rows) { var item = new T(); foreach (var property in properties) { if (dataTable.Columns.Contains(property.Name) && row[property.Name] != DBNull.Value) { property.SetValue(item, Convert.ChangeType(row[property.Name], property.PropertyType)); } } target.Add(item); } } } }