如何将List<List<string>>
转换为DataTable
?我正在尝试将gridview的DataSource
设置为List<List<string>>
变量。
答案 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;
}