將DataTable轉換為List object

Designed by Freepik
我也忘記在什麼狀況下,要這樣轉來轉去..
所以上網查了一下,發現國外論壇有這樣的方法
紀錄一下吧
圖片來源Designed by Freepik


論壇提供兩種方法
  1. 方法1
private List<MyObj> test(DataTable dt)
{
  var convertedList = (from dr in dt.AsEnumerable()
    select new MyObj()
    {
      ID = Convert.ToInt32(dr["ID"]),
      Name = Convert.ToString(dr["Name"])
    }).ToList();

  return convertedList;
}

  1. 方法2
private List<object> GetListByDataTable(DataTable dt)
{
  var reult = (from dr in dt.AsEnumerable()
    select new
    {
      Name = Convert.ToString(dr["Name"]),
      ID = Convert.ToInt32(dr["ID"])
    }).ToList();

  return reult.ConvertAll<object>(o => (object)o);
}

另外如果只是要將Datatable的某一個Row轉成string list 可以使用Linq語法如下   List<string> listObj = ds.Tables[0].AsEnumerable()
      .Select(r => r.Field("colName"))
      .ToList();

沒有留言:

張貼留言

技術提供:Blogger.