如何在datatable c#中添加List

时间:2015-08-10 13:46:59

标签: c# datatable

我有多个字符串列表,其中包含我想在不同列的数据表中打印的数据

这是我的代码

List<string> WareHouseStatus = new List<string>();
List<string> Gulf_IT_Barcode = new List<string>();
List<string> Item_Original_SNO = new List<string>();

DataTable NewTempletLaptop_Excel = new DataTable();
NewTempletLaptop_Excel.Columns.Add("WareHouseStatus", typeof(string));
NewTempletLaptop_Excel.Columns.Add("Gulf_IT_Barcode", typeof(string));
NewTempletLaptop_Excel.Columns.Add("Item_Original_SNO", typeof(string));

      foreach (var item in WareHouseStatus)
      {
        NewTempletLaptop_Excel.Rows.Add(item);
      }

      foreach (var item in Gulf_IT_Barcode)
      {
        NewTempletLaptop_Excel.Rows.Add(item);  ///
      }

我的第二个foreach循环将该项添加到同一第一列......

如何在数据表的所有三列中打印所有这些字符串列表?

1 个答案:

答案 0 :(得分:1)

这不是我想做的最好的设计,但是尝试的答案确实提出了对原始代码进行最小化更改的解决方案。

您必须创建所需数量的行,然后填充按行索引和行列名访问的行。

$ionicView.beforeEnter

请注意,如果您的列表WareHouseStatus比另一个短,则它会失败,因为它的长度定义了List<string> WareHouseStatus = new List<string>() { "1", "11", "111" }; List<string> Gulf_IT_Barcode = new List<string>() { "2", "22", "222" }; List<string> Item_Original_SNO = new List<string>() { "3", "33", "333" }; System.Data.DataTable NewTempletLaptop_Excel = new System.Data.DataTable(); NewTempletLaptop_Excel.Columns.Add("WareHouseStatus", typeof(string)); NewTempletLaptop_Excel.Columns.Add("Gulf_IT_Barcode", typeof(string)); NewTempletLaptop_Excel.Columns.Add("Item_Original_SNO", typeof(string)); int row = 0; // row index in data foreach (var item in WareHouseStatus) { // create new row, do it only first time NewTempletLaptop_Excel.Rows.Add(NewTempletLaptop_Excel.NewRow()); // set value to the appropriate cell NewTempletLaptop_Excel.Rows[row]["WareHouseStatus"] = item; row++; } row = 0; foreach (var item in Gulf_IT_Barcode) { // set value to the appropriate cell NewTempletLaptop_Excel.Rows[row]["Gulf_IT_Barcode"] = item; row++; } row = 0; foreach (var item in Item_Original_SNO) { // set value to the appropriate cell NewTempletLaptop_Excel.Rows[row]["Item_Original_SNO"] = item; row++; } 中的行号。您可以添加另一个处理此案例的逻辑。 另外,列名称应该在变量中定义一次,这里我做了#34; copy-paste&#34;列名称只是为了以最小的变化集中在你的问题上,所以它会更清晰。

我希望它有所帮助。