public static IEnumerableParse(IEnumerablerows) where T : class, new() { if (rows == null || Enumerable.FirstOrDefault(rows) == null) return (IEnumerable) new T[0]; PropertyInfo[] properties = typeof (T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty); Listlist = new List(); foreach (DataRow row in rows) { T instance = Activator.CreateInstance(); DbHelper.Parse((object) instance, (IEnumerable) properties, row); list.Add(instance); } return (IEnumerable) list; } private static void Parse(object obj, IEnumerableproperties, DataRow row) { foreach (PropertyInfo propertyInfo in properties) { if (DataRowExtension.HasValue(row, propertyInfo.Name)) { try { propertyInfo.SetValue(obj, DbHelper.ConvertType(CultureInfo.CurrentCulture, row[propertyInfo.Name], propertyInfo.PropertyType), (object[]) null); } } catch{ } } }