datatable转list(linq方法)

public class UtilityBase
{
  public static List<T> ToList<T>(DataTable dt)
  {
    var columnsName = dt.Columns.Cast<DataColumn>()
      .Select(d => d.ColumnName).ToList();
    var properties = typeof(T).GetProperties();

    return dt.AsEnumerable().Select(r =>
    {
      var objT = Activator.CreateInstance<T>();
      foreach (var pro in properties)
      {
        if (columnsName.Contains(pro.Name))
        {
          pro.SetValue(objT,r[pro.Name]);
        }
      }
      return objT;
    ).ToList();
}
}

posted @ 2015-07-08 21:20  wjl910  阅读(546)  评论(0)    收藏  举报