C#如何根据DataTable生成泛型List或者动态类型list

背景:在项目中,sql语句检索返回DataTable,然后根据检索结果做进一步的操作,本篇文章即是介绍如何将DataTable快速生成泛型List返回。

假设存在如下学生类:

1     public class student

2     {

3         public int ID { get; set; }

4         public string  StuName { get; set; }

5         public string  CityCode { get; set; }

6     }

存在如下数据表Student:

C#如何根据DataTable生成泛型List或者动态类型list

1、泛型List,其C#代码如下:

1             da.Fill(dt);

2             List<student> listStu = null;

3             if (dt.Rows.Count > 0)

4             {

5                 listStu = dt.AsEnumerable().Select(row => new student() { ID = Convert.ToInt32(row["ID"]), StuName = row["StuName"].ToString(), CityCode = row["CityCode"].ToString() }).ToList();

6             }

注意代码中,Select和ToList()的使用。

2、动态类型List,其C#代码如下:

1             da.Fill(dt);

2             if (dt.Rows.Count > 0)

3             {

4                 var rows = dt.AsEnumerable().Select(row => new  { ID = Convert.ToInt32(row["ID"]), StuName = row["StuName"].ToString(), CityCode = row["CityCode"].ToString() }).ToList();

5                 foreach (var item in rows)

6                 {

7                     Console.WriteLine(item.StuName);

8                 }

9             }

C#如何根据DataTable生成泛型List或者动态类型list

其中rows的每一个元素,均为一个匿名类型的对象。

你可能感兴趣的:(Datatable)