C# 通过For循环添加表行
我正试图编写一个程序,要求我向数据网格添加数据。这是一种模式,但我似乎不知道如何通过For循环体面地完成这些数据 这是我不使用For循环的代码:C# 通过For循环添加表行,c#,datagrid,for-loop,datatable,C#,Datagrid,For Loop,Datatable,我正试图编写一个程序,要求我向数据网格添加数据。这是一种模式,但我似乎不知道如何通过For循环体面地完成这些数据 这是我不使用For循环的代码: table.Rows.Add("0", "0", "0", "0", "0"); table.Rows.Add("0", "0", "0", "1", "0"); table.Rows.Add("0", "0", "1", "0", "0"); table.Rows.Add("0", "1", "0", "0", "0"); table.Rows.A
table.Rows.Add("0", "0", "0", "0", "0");
table.Rows.Add("0", "0", "0", "1", "0");
table.Rows.Add("0", "0", "1", "0", "0");
table.Rows.Add("0", "1", "0", "0", "0");
table.Rows.Add("1", "0", "0", "0", "0");
table.Rows.Add("1", "0", "0", "1", "0");
table.Rows.Add("1", "0", "1", "0", "0");
table.Rows.Add("1", "1", "0", "0", "0");
table.Rows.Add("1", "1", "0", "1", "0");
table.Rows.Add("1", "1", "1", "0", "0");
table.Rows.Add("1", "1", "1", "1", "0");
最后一个零将动态生成,无需对其执行任何操作
这是否可能通过For循环实现?这种For循环模式有用吗?(这是用于真值表的模式,它只是二进制计数)
for(int i=0;i<16;i++)
{
控制台写入线(
string.Format(“{0:0000}”,
Convert.ToInt16(Convert.ToString(i,2)))
);
}
/*
输出
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
*/
您可以使用这个循环,尽管它不太可读。因此,如果您可以使用静态代码,请使用它
bool allFieldsOne = false;
table.Rows.Add("0", "0", "0", "0", "0");
while (!allFieldsOne)
{
DataRow lastRow = table.Rows[table.Rows.Count - 1];
DataRow currentRow = table.Rows.Add();
currentRow[4] = "0";
for (int f = 3; f >= 0; f--)
{
if (lastRow.Field<string>(f) == "0")
{
currentRow[f] = "1";
while (--f >= 0)
currentRow[f] = "0";
break;
}
else
{
currentRow[f] = "1";
allFieldsOne = f == 0;
}
}
}
bool allFieldsOne=false;
表.行.添加(“0”、“0”、“0”、“0”、“0”);
而(!allFieldsOne)
{
DataRow lastRow=table.Rows[table.Rows.Count-1];
DataRow currentRow=table.Rows.Add();
currentRow[4]=“0”;
对于(int f=3;f>=0;f--)
{
如果(最后一行字段(f)=“0”)
{
当前行[f]=“1”;
而(--f>=0)
currentRow[f]=“0”;
打破
}
其他的
{
当前行[f]=“1”;
allFieldsOne=f==0;
}
}
}
这些数据来自哪里?在实际数据源中循环。您可以简单地将表与数据源(如果有的话)绑定。您已经有了可读的工作代码,为什么要更改它?将对数字进行计算。例如,行的前两个数字是成对的,必须使用特定的、动态设置的运算符进行计算。第三个和第四个数字相同。然后,将再次计算这两对的结果,并在行的第5个条目中填写。搜索Truthtable。作者的当前代码包括二进制的30
。这将表明循环应该计数到30
而不是16
。对于真值表和作者本身,这将是32:最后一个零将动态生成,无需对此进行任何处理。
bool allFieldsOne = false;
table.Rows.Add("0", "0", "0", "0", "0");
while (!allFieldsOne)
{
DataRow lastRow = table.Rows[table.Rows.Count - 1];
DataRow currentRow = table.Rows.Add();
currentRow[4] = "0";
for (int f = 3; f >= 0; f--)
{
if (lastRow.Field<string>(f) == "0")
{
currentRow[f] = "1";
while (--f >= 0)
currentRow[f] = "0";
break;
}
else
{
currentRow[f] = "1";
allFieldsOne = f == 0;
}
}
}