将数据表转换为列表

时间:2018-09-17 14:34:38

标签: c# list linq datatable

我有这个DataTAble

public void FillComboBox()
{
    cbox_order.Items.Add("Code").ToString();
    cbox_order.Items.Add("Model").ToString();
    cbox_order.Items.Add("Itemdescription").ToString();
}

如何转换此DataTable以获得这样的列表

DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Rows.Add("1", "5");
dt.Rows.Add("6", "10");
dt.Rows.Add("11", "15");

3 个答案:

答案 0 :(得分:3)

使用SelectMany

List<string> dtList= dt.AsEnumerable()
    .SelectMany(r=> new[]{ r.Field<string>("A"), r.Field<string>("B") })
    .ToList();

答案 1 :(得分:2)

先由DataRow[]转换为Select,然后由SelectMany转换为对象数组。最后,将每个值object转换为string

var list = dt.Select().SelectMany(row => row.ItemArray).Select(x=> (string)x).ToList()

答案 2 :(得分:2)

尝试一下:

    DataTable dt = new DataTable();
    dt.Columns.Add("A");
    dt.Columns.Add("B");
    dt.Rows.Add("1", "5");
    dt.Rows.Add("6", "10");
    dt.Rows.Add("11", "15");
    var output = dt.Rows.Cast<DataRow>().SelectMany(x => new[] { x[0], x[1] }).ToList();

编辑:添加了.ToList();