嗨在我的要求中我有数组值(1到12)我想将数组值用于矩阵示例的形成。 我想要我尝试的输出,但我得到重复行请解决这个问题。
预期输出为:
A B C D
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
我正在使用的代码
DataTable dt = new DataTable();
dt.Columns.Add("Col1");
dt.Columns.Add("Col2");
dt.Rows.Add("A", "1");
dt.Rows.Add("B", "2");
dt.Rows.Add("C", "3");
dt.Rows.Add("D", "4");
dt.Rows.Add("A", "5");
dt.Rows.Add("B", "6");
dt.Rows.Add("C", "7");
dt.Rows.Add("D", "8");
dt.Rows.Add("A", "9");
dt.Rows.Add("B", "10");
dt.Rows.Add("C", "11");
dt.Rows.Add("D", "12");
dt.AcceptChanges();
int[] intArray = new int[10];
DataTable dt2 = new DataTable();
for (int i = 0; i <= dt.Rows.Count; i++)
{
if (!(dt2.Columns.Contains(dt.Rows[i][0].ToString())))
{
dt2.Columns.Add(dt.Rows[i][0].ToString());
}
else
break;
}
int x = 0;
int m = 0;
for (int j = x; j < dt.Rows.Count; j++)
{
// create a DataRow using .NewRow()
DataRow row = dt2.NewRow();
int i = 0;
// iterate over all columns to fill the row
for (i = 0; i < dt2.Columns.Count; i++)
{
row[i] = dt.Rows[i][1];
x = i;
}
// add the current row to the DataTable
dt2.Rows.Add(row);
}
答案 0 :(得分:1)
如果我误解了你的要求,请原谅我。从问题中不清楚,你不愿意添加更多信息。指定的输出看起来像DataTable,标题为A,B,C,D
,如果是这样,您可以尝试以下代码:
int[] inputElements = Enumerable.Range(1, 12).ToArray(); // Will give you array(1-12)
DataTable outputTable = new DataTable();
outputTable.Columns.Add("A");
outputTable.Columns.Add("B");
outputTable.Columns.Add("C");
outputTable.Columns.Add("D");
for (int i = 0; i < inputElements.Length - 1; )
{
DataRow dRow = outputTable.NewRow();
for (int j = 0; j < 4; j++)
{
dRow[j] = inputElements[i];
i++;
}
outputTable.Rows.Add(dRow);
}
输出表将是这样的: