【问题标题】:How to add List in datatable C#?如何在数据表 C# 中添加列表?
【发布时间】:2019-09-19 01:11:01
【问题描述】:

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

这是我的代码

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 循环将项目添加到同一列中。

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

【问题讨论】:

  • 打印到哪里?你究竟想让它看起来像什么 - 你试图用它做什么?
  • 我希望它在我的三个 diff 列中填充这些列表...例如 List 1 填充 Colunm1 ,list 2 填充 Colunm 2 ...等
  • 看看你的代码,你添加了两次rows,而不是columns。使用一个 for 循环,用值填充列,然后将行添加到数据表中。
  • 你能举一些例子吗?我想在我的数据表中添加列表项
  • 所以尝试一下?告诉我们它为什么没有达到你的预期

标签: c# datatable


【解决方案1】:

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

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

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++;
}

请注意,如果您的列表 WareHouseStatus 比另一个短,它将失败,因为它的长度定义了 DataTable 中的行数。您可以添加另一个处理这种情况的逻辑。 此外,列名应该在变量中定义一次,这里我对列名进行了“复制粘贴”,只是为了专注于您的问题,并进行最少的更改,这样会更清楚。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2020-02-11
    • 2019-11-01
    相关资源
    最近更新 更多