如何转换List <list <string>&gt;到DataTable </list <string>

时间:2011-06-14 14:15:08

标签: c# asp.net visual-studio

如何将List<List<string>>转换为DataTable?我正在尝试将gridview的DataSource设置为List<List<string>>变量。

3 个答案:

答案 0 :(得分:4)

这可以使用扩展方法轻松完成。

将此课程添加到您的解决方案

static class ListExtensions
{
    public static DataTable ToDataTable(this List<List<string>> list)
    {
        DataTable tmp = new DataTable();
        foreach (List<string> row in list)
        {
            tmp.Rows.Add(row.ToArray());
        }
        return tmp;
    }
}

然后使用这样的扩展方法:

List<List<string>> myList = new List<List<string>>();
// Fill with values...
DataTable table = myList.ToDataTable();

答案 1 :(得分:2)

我宁愿将网格的DataSource设置为BindableList,您可能会更容易创建,而不是双嵌套List,您将拥有List of Rows(其中Row是业务实体,例如Customer)。

答案 2 :(得分:1)

public static DataTable ToDataTable(this List<List<string>> list)
{
    DataTable dt = new DataTable();
    list.First().ForEach(colname => dt.Columns.Add(colname));
    foreach (List<string> row in list.Skip(1))
        dt.Rows.Add(row.ToArray());
    return dt;
}