从c#中的foreach循环中的else if循环中断

时间:2013-11-28 04:08:53

标签: c#

我有一个foreach循环,里面有if if循环,在每个循环中我检查文本文件行,首先我检查第一行是“ctf”如果没有从所有循环退出,否则它是“ctf”然后在foreach循环中取下一行并转到其他部分,但我的其他部分是检查第一行可以有人说出实际问题是什么。

     bool first = true;int i=0;
       lines = streamReader.ReadToEnd().Split("\r\n".ToCharArray(),           StringSplitOptions.RemoveEmptyEntries);
      foreach (string  line in lines)
             {
               if (first)
                {
                    if (line != "CTF") { break; }    // i think the problem is here.
                    first = false;

                }
                else
                {

                    tabs = line.Split('\t');
                    ID = int.Parse(tabs[0]);
                    X = int.Parse(tabs[1]);
                    Y = int.Parse(tabs[2]);
                    H = int.Parse(tabs[3]);
                    W = int.Parse(tabs[4]);
                    Text = tabs[5];
                    ItemTypes types = (ItemTypes)int.Parse(tabs[6]);

                        Items.Add(new FormItem());
                        Items[i].Id = ID;
                        Items[i].X = X;
                        Items[i].Y = Y;
                        Items[i].Height = H;
                        Items[i].Width = W;
                        Items[i].Text = Text;
                        Items[i].Type = types;
                       i++;


                }

3 个答案:

答案 0 :(得分:1)

交换'if'检查

主体的顺序
        if (first)
            {
                first = false;
                if (line != "CTF") { break; }
            }

你的问题是如果第一行不是“CTF”,bool变量'first'不会被设置为false。

答案 1 :(得分:0)

假设它可能是套管问题,请考虑以下更改......

if (line != "CTF") { break; } 

为...

if (string.Compare(line, "CTF", true)== 0) { break; } 

祝你好运!

答案 2 :(得分:0)

在其他地方写下第一个= false

foreach (string  line in lines)

             {
               if (first)
                {
                    if (line != "CTF") { break; }    // i think the problem is here.

                }
                else
                {

                    tabs = line.Split('\t');
                    ID = int.Parse(tabs[0]);
                    X = int.Parse(tabs[1]);
                    Y = int.Parse(tabs[2]);
                    H = int.Parse(tabs[3]);
                    W = int.Parse(tabs[4]);
                    Text = tabs[5];
                    ItemTypes types = (ItemTypes)int.Parse(tabs[6]);

                        Items.Add(new FormItem());
                        Items[i].Id = ID;
                        Items[i].X = X;
                        Items[i].Y = Y;
                        Items[i].Height = H;
                        Items[i].Width = W;
                        Items[i].Text = Text;
                        Items[i].Type = types;
                       i++;


                }
    first = false;
}