使用C#将数据表转换为List的简便方法

时间:2017-04-08 05:34:29

标签: c# linq

我正在尝试使用C#将Datatable转换为List

public void GetList()
{

    ds = // here my dataset;

    List<MasterList> result = new List<MasterList>();
    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
    {
        foreach (DataRow dt in ds.Tables[0].Rows)
        {
            result.Add(new MasterList()
            {
                Name = Convert.ToString(dt["Name"]),
                Address = Convert.ToString(dt["Address"]),
                City = Convert.ToString(dt["City"])
            });

        }
    }
}

这段代码工作正常,但我想知道将Datatable转换为List的简单方法,这里使用的是foreach循环。

那么解决方案是什么?

1 个答案:

答案 0 :(得分:3)

使用Linq,您可以执行以下操作:

List<MasterList> result = ds.Tables[0].AsEnumerable().Select(dtRow => new MasterList()
{
    Name = Convert.ToString(dtRow["Name"]),
    Address = Convert.ToString(dtRow["Address"]),
    City = Convert.ToString(dtRow["City"])
}).ToList()