How would I convert List<List<string>>
to a DataTable
? I am trying to set the DataSource
of a gridview to a List<List<string>>
variable.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
This can easily be done using extension methods.
Add this class to your solution
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;
}
}
then use the extension method like this:
List<List<string>> myList = new List<List<string>>();
// Fill with values...
DataTable table = myList.ToDataTable();
回答2:
I would rather set DataSource of the grid to BindableList, which you would perhaps create easier, instead of double nested List, you would have List of Rows (where the Row is business entity represented, for example Customer).
回答3:
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;
}