C# 通过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

我正试图编写一个程序,要求我向数据网格添加数据。这是一种模式,但我似乎不知道如何通过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.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;
        }
    }
}