从数组

时间:2018-03-29 09:21:02

标签: c#

我有三个阵列,如下所述。试图填充数据表。但是没有预料到产量。

需要此格式

enter image description here

AnalyteNames = new string[] { "NA", "K", "CL" };

Units =  "MML";

values= new string[]{"14", "15","16"}

以下是书面代码。

int count = 0;
for (int col = 0; col < dataSave.Columns.Count; col++)
{
    int i = 0;
    if (col == 0)
    {
        for (int row = 1; row < dataSave.Rows.Count - 1; row++)
        {
            dr[col] = CheckedAnalytes[i];
            i++;
        }
    }

    if (count == 1)
    {
        i = 0;
        for (int row = 1; row < dataSave.Rows.Count - 1; row++)
        {
            dr[col] = SelectedUnits;
        }
    }

    if (count == 2)
    {
        i = 0;
        for (int row = 1; row < dataSave.Rows.Count - 1; row++)
        {
            dr[col] = values[i];
            i++;
        }
    }
    count++;
}

2 个答案:

答案 0 :(得分:0)

假设有三个长度相同的数组:

var analyteNames = new string[] { "NA", "K", "CL" };
var units = new string[]{"MML", "MML", "MML"};
var values = new string[]{"14", "15","16"};

包含三列的数据表:

var dt = new DataTable();
dt.Columns.Add("analyteNames", typeof(string));
dt.Columns.Add("units", typeof(string));
dt.Columns.Add("values", typeof(string));

您可以使用接受DataRowCollection的{​​{1}} Add方法重载来使用单个循环:

params object[]

答案 1 :(得分:0)

如果是我,我将填充自定义列表插入值并填充DataTable()

自定义列表

public class Values
{
  public int value1
  {
    get;
    set;
  }
  public string value2
  {
    get;
    set;
  }
  public string value3
  {
    get;
    set;
  }
}

下一步填充列表

List<Values> list = new List<Values>();
list.Add(new Values{
    value1 = 1,
    value2 = "",
    value3 = ""
});

下一步填充您的DataTable()

var dt = new DateTable();

  dt.Columns.Add(Header1, typeof(int));
  dt.Columns.Add(Header2, typeof(string));
  dt.Columns.Add(Header3, typeof(string));

foreach(var item in list)
{
  dt.Rows.Add(item.value1,item.value2,item.value3);
}