我创建循环来创建许多列.
我的公式:
[dt.Columns.Add("Name" + "{a, b, c}" + {1, 2, 3, 4})]
Run Code Online (Sandbox Code Playgroud)
我输入k = 3的是创建3列开始Name,Class,Score.
这是我的第一个代码(它不起作用):
char charac = 'A';
for (int k = 0; k < 3; k++)
{
for (int m = 0; m < 4; m++)
{
charac++;
dt.Columns.Add("Name" + charac + m);
dt.Columns.Add("Class" + charac + m);
dt.Columns.Add("Score" + charac + m);
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的结果如下:
dt.Columns.Add("Name_a1");
dt.Columns.Add("Name_a2");
dt.Columns.Add("Name_a3");
dt.Columns.Add("Name_a4");
dt.Columns.Add("Name_b1");
dt.Columns.Add("Name_b2");
dt.Columns.Add("Name_b3");
dt.Columns.Add("Name_b4");
dt.Columns.Add("Name_c1");
dt.Columns.Add("Name_c2");
dt.Columns.Add("Name_c3");
dt.Columns.Add("Name_c4");
dt.Columns.Add("Class_a1");
dt.Columns.Add("Class_a2");
dt.Columns.Add("Class_a3");
dt.Columns.Add("Class_a4");
dt.Columns.Add("Class_b1");
dt.Columns.Add("Class_b2");
dt.Columns.Add("Class_b3");
dt.Columns.Add("Class_b4");
dt.Columns.Add("Class_c1");
dt.Columns.Add("Class_c2");
dt.Columns.Add("Class_c3");
dt.Columns.Add("Class_c4");
dt.Columns.Add("Score_a1");
dt.Columns.Add("Score_a2");
dt.Columns.Add("Score_a3");
dt.Columns.Add("Score_a4");
dt.Columns.Add("Score_b1");
dt.Columns.Add("Score_b2");
dt.Columns.Add("Score_b3");
dt.Columns.Add("Score_b4");
dt.Columns.Add("Score_c1");
dt.Columns.Add("Score_c2");
dt.Columns.Add("Score_c3");
dt.Columns.Add("Score_c4");
Run Code Online (Sandbox Code Playgroud)
根据您的要求,您的代码应如下所示:
char charac = 'A';
for (int k = 1; k <= 3; k++)
{
for (int m = 1; m <= 4; m++)
{
dt.Columns.Add("Name_" + charac + m);
dt.Columns.Add("Class_" + charac + m);
dt.Columns.Add("Score_" + charac + m);
}
charac++;
}
Run Code Online (Sandbox Code Playgroud)
你犯的错误:
charac在不正确的地方增加(应该在外循环的末尾.不在内部的开头).更新.在列排序很重要的情况下 - 您需要为每个列前缀单独循环.为了避免代码复制,可以将其重构为方法:
private void AddColumns(DataTable dt, string columnPrefix)
{
char charac = 'A';
for (int k = 1; k <= 3; k++)
{
for (int m = 1; m <= 4; m++)
{
dt.Columns.Add(columnPrefix + charac + m);
}
charac++;
}
}
Run Code Online (Sandbox Code Playgroud)
并使用此方法
AddColumns(dt, "Name_");
AddColumns(dt, "Class_");
AddColumns(dt, "Score_");
Run Code Online (Sandbox Code Playgroud)