背景:在项目中,sql语句检索返回DataTable,然后根据检索结果做进一步的操作,本篇文章即是介绍如何将DataTable快速生成泛型List返回。
假设存在如下学生类:
public class student
{
public int ID { get; set; }
public string StuName { get; set; }
public string CityCode { get; set; }
}
存在如下数据表Student:
1、泛型List,其C#代码如下:
da.Fill(dt);
List<student> listStu = null;
if (dt.Rows.Count > )
{
listStu = dt.AsEnumerable().Select(row => new student() { ID = Convert.ToInt32(row["ID"]), StuName = row["StuName"].ToString(), CityCode = row["CityCode"].ToString() }).ToList();
}
注意代码中,Select和ToList()的使用。
2、动态类型List,其C#代码如下:
da.Fill(dt);
if (dt.Rows.Count > )
{
var rows = dt.AsEnumerable().Select(row => new { ID = Convert.ToInt32(row["ID"]), StuName = row["StuName"].ToString(), CityCode = row["CityCode"].ToString() }).ToList();
foreach (var item in rows)
{
Console.WriteLine(item.StuName);
}
}
其中rows的每一个元素,均为一个匿名类型的对象。