通过Linq创建DataTable

时间:2013-08-28 22:56:23

标签: linq

请告知我如何使用以下来源创建数据表:

public class MyClass : IEquatable<My>
{
  public int field1 { get; set; }
  public int field2 { get; set; }
}

List<MyClass> lst = new List<MyClass>();

MyClass e = new MyClass;
e.field1 = 1;
e.field2 = 2;

lst.Add(e);

如何使用Linq创建field1和field2值的数据表?

2 个答案:

答案 0 :(得分:1)

不幸的是你不能使用任何很酷的LINQ特定代码,但是你可以创建一个DataTable,添加Columns,循环遍历你已经填充的List

DataTable dt = new DataTable();
dt.Columns.Add("field1");
dt.Columns.Add("Field2");

lst.ForEach(l => {

var dr = dt.NewRow();
    dr[0] = l.field1;
    dr[1] = l.field2;

    dt.Rows.Add(dr);
});

答案 1 :(得分:1)

您可以使用CopyToDataTable扩展名方法。查看MSDN文章How to: Implement CopyToDataTable Where the Generic Type T Is Not a DataRow

DataTable table = lst.CopyToDataTable();