数组转DataTable

_小黑_ 2019-03-30 10:44:18


/// <summary>
/// 获取KEY
/// </summary>
/// <returns></returns>
private string[][] GetKey(string[,] arr)
{
string[][] key = new string[arr.GetLength(0)][];
//for (int i = 0; i < arr.GetLength(0); i++)
//{
// key[i] =new string [arr.GetLength(1)];
// for (int j = 0; j < arr.GetLength(1); j++)
// {
// key[i][j] = arr[i, j];
// }
//}
key[0] = new string[4];
key[0][0] = "key";
key[0][1] = "item";
key[0][2] = "type";
key[0][3] = "other";

key[1] = new string[4];
key[1][0] = "1";
key[1][1] = "sell-in";
key[1][2] = "in";
key[1][3] = "aa";

key[2] = new string[4];
key[2][0] = "2";
key[2][1] = "sell-out";
key[2][2] = "out";
key[2][3] = "bb";
return key;
}
/// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
private string[][] GetData()
{
string[][] data = new string[6][];
data[0] = new string[5];
data[0][0] = "FCT";
data[0][1] = "FCT";
data[0][2] = "FCT";
data[0][3] = "FCT";
data[0][4] = "FCT";


data[1] = new string[5];
data[1][0] = "201801";
data[1][1] = "201802";
data[1][2] = "201803";
data[1][3] = "201804";
data[1][4] = "201805";

data[2] = new string[5];
data[2][0] = "2018-1-1";
data[2][1] = "2018-1-1";
data[2][2] = "2018-1-1";
data[2][3] = "2018-1-1";
data[2][4] = "2018-1-1";

data[3] = new string[5];
data[3][0] = "2018-1-1";
data[3][1] = "2018-1-8";
data[3][2] = "2018-1-15";
data[3][3] = "2018-1-22";
data[3][4] = "2018-1-29";

data[4] = new string[5];
data[4][0] = "123";
data[4][1] = "234";
data[4][2] = "345";
data[4][3] = "456";
data[4][4] = "567";

data[5] = new string[5];
data[5][0] = "333";
data[5][1] = "444";
data[5][2] = "555";
data[5][3] = "666";
data[5][4] = "777";


return data;
}
//以上数组 想转成 以下DataTable
key item type other dataType DataWeek DataMonth DataDate qty
1 sell-in in aa fct 201801 Jan-18 2018-1-1 123
1 sell-in in aa fct 201802 Jan-18 2018-1-8 234
1 sell-in in aa fct 201803 Jan-18 2018-1-15 345
1 sell-in in aa fct 201804 Jan-18 2018-1-22 456
1 sell-in in aa fct 201805 Feb-18 2018-1-29 567
2 sell-out out bb fct 201801 Jan-18 2018-1-1 333
2 sell-out out bb fct 201802 Jan-18 2018-1-8 444
2 sell-out out bb fct 201803 Jan-18 2018-1-15 555
2 sell-out out bb fct 201804 Jan-18 2018-1-22 666
2 sell-out out bb fct 201805 Feb-18 2018-1-29 777

...全文
151 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
_小黑_ 2019-03-30
  • 打赏
  • 举报
回复

for (int i = 0; i <= key.GetLength(0); i++)
{
DataColumn dc = new DataColumn(key[0][i]);
dtSource.Columns.Add(dc);
}
dtSource.Columns.Add("DataType");
dtSource.Columns.Add("DataMonth");
dtSource.Columns.Add("DataWeek");
dtSource.Columns.Add("DataDate");
dtSource.Columns.Add("QTY");
for (int i = 1; i < key.Length; i++)//循环主数据的行
{
for (int j = 0; j < 5; j++)//循环数据的列
{
DataRow dr = dtSource.NewRow();
dr["item"] = key[i][1];//获取主数据ITEM列在数组的第1列
dr["key"] = key[i][0];
dr["type"] = key[i][2];
dr["other"] = key[i][3];
dr["DataType"] = data[0][j];//获取DataType在数据的第0行
dr["DataMonth"] = data[2][j];
dr["DataWeek"] = data[1][j];
dr["DataDate"] = data[3][j];
dr["QTY"] = data[i + 3][j];//获取QTY 由于主数据和数据相差3行所以加3
dtSource.Rows.Add(dr);
}
}

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧