如何跳过foreach循环的值?

时间:2017-01-15 11:56:54

标签: c# mysql foreach

我正在使用C#和Windows窗体中的开发和应用程序,我的目标是编译器与MySQL连接聊天,其中所有消息都保存在数据库中,然后保存在计算机中,TXT。

然后,我将创建一个动态标签,为TXT的每一行创建一个标签。

sql.sqlcmd("SELECT COUNT(*) FROM chat");
int count = int.Parse(sql.sqlcmd_answ);

foreach (string line in File.ReadLines("mac.txt"))
{
    int i = 0;
    int p = 62;
    while (i < count)
    {
        Console.WriteLine(line);
        Label lb = new Label();
        lb.Text = line;
        lb.Location = new Point(58, p);
        p = p + 30;
        panel1.Controls.Add(lb);
        ++i; 
    }
}

文件包含以下行:

1222
22222
Chat...
fxckxd
fxckxd
fxck
ffff
cambio
Chat...heya
22222
Xd
Xd
DDDD3EEEE
DDDD

你可以看到 foreach 总是打印第一个值,我的TXT有15个值,我希望每个标签的TEXT都是TXT的每一行。  http://image.prntscr.com/image/a1d36d25ae3d4948b765082250d8cb3b.png

1 个答案:

答案 0 :(得分:1)

这只是因为line的值在内部while循环的整个生命周期中是相同的。我不明白为什么你甚至需要while循环。只需遍历文件中的值:

int p = 62;
foreach (string line in File.ReadLines("mac.txt"))
{
    Console.WriteLine(line);
    var lb = new Label()
    {
       Text = line,
       Location = new Point(58, p)
    };
    panel1.Controls.Add(lb);
    p = p + 30;
}
相关问题