如何将List <List >转换为DataTable

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

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

将此类添加到您的解决方案中

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

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

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

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

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