C#只返回四行中的一行

时间:2016-07-01 14:45:04

标签: c# regex linq

我有一个程序可以搜索特定的单词"周末"从文本文件。如果找到这个单词,那么程序将从单词周末经过它上面的每一行,并读取单词" MONTH"的每一行。找到"月后,它显示该行。这里的问题是可能有两个或更多周末"以下单词"月"。而不是显示"月"周末"周末"发现,即使发现三到两个周末,我只想回归一个月。

//文本文件'月六月'

中行的格式

"平日

'周末'

'周末'

//找到的两个周末输出不是这样的:

" 6月和#34;

" 6月和#34;

//我希望它只返回一次:<​​/ p>

&#34; 6月和#34;

我非常感谢您的帮助,因为我是c#的新手。我尝试实现LINQ和REGEX,但我失败了。我想我的熟练程度还不高。

这是我的代码:

string[] result = list.ToArray();
     for (int i = 0; i < result.Length; i++)
           {

             if (result[i].Contains("weekend"))
                {

                var request = result[i];

                            ult = result[i - 1];
                            ault = result[i - 2];

                            if (ult.Contains("Month"))
                            {
                                Console.WriteLine(ult + "\r\n");          
                            }

                            if (ault.Contains("Month"))
                            {
                            Console.WriteLine(ault + "\r\n");
                        }

                    }
                }

1 个答案:

答案 0 :(得分:0)

假设您的文本文件名是“Sample.txt”并包含在下面

Month Jan
Month Feb 
Month March 
Weekend

是您想要遍历的文本文件以满足目的。在这种情况下,您的代码应该是... ..

            using (StreamReader sr = File.OpenText("Sample.txt"))
            {
            string s = String.Empty;
            while ((s = sr.ReadLine()) != null)
            {
                if (!(s.Contains("Weekend")))
                {
                    Console.WriteLine(s);
                }
                else
                {
                    sr.Close();
                }
            }
            }

以上代码可以解决您的问题。