using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; namespace IStation.Extensions { /// /// DataTable拓展 /// public static class DataTableExtension { /// /// 转化为可枚举对象 /// public static IEnumerable ToEnumerable(this DataTable dt) where T : new() { foreach (DataRow dr in dt.Rows) { T t = new T(); PropertyInfo[] properties = t.GetType().GetProperties(); foreach (PropertyInfo pro in properties) { //判断DataTable是否包含此列 if (dt.Columns.Contains(pro.Name)) { //判断此属性是否有Setter if (!pro.CanWrite) continue; object value = dr[pro.Name]; if (value != DBNull.Value) pro.SetValue(t, value, null); } } yield return t; } } } }