计算特定字符串组合的行数

时间:2013-04-05 08:49:35

标签: c#

我想要数不。出现ProductServices和Add Product的行。

日志是:

  

INFO [ProductServices]添加产品已由gulanand执行   产品ID为424()INFO [ProductServices]添加产品已经过   由gulanand在id为424()INFO的产品上执行   [ProductServices]添加产品已由gulanand执行   产品ID为424()INFO [ProductServices]更新产品已经过   由gulanand在id为424()INFO的产品上执行   [ProductServices]更新产品已由gulanand执行   产品ID为424()INFO [ProductServices]添加产品已经过   由gulanand在id为424()INFO的产品上执行   [ProductServices]添加产品已由gulanand执行   产品ID为424()INFO [ProductServices]添加产品已经过   由gulanand在id为424()

的产品上执行

我试过的代码是:

IEnumerable<string> textLines =
    Directory.GetFiles(@"C:\Users\karansha\Desktop\Ashish Logs\", "*.*")
                        .Select(filePath => File.ReadAllLines(filePath))
                        .SelectMany(line => line);

List<string> users = new List<string>();

Regex r = new Regex(@"*ProductServices\sAdd Product");
foreach (string Line in textLines)
{
    if (r.IsMatch(Line))
    {
        users.Add(Line);
    }
}
//string[] textLines1 = new List<string>(users).ToArray();
int countlines = users.Count();
Console.WriteLine("ProductsCreated=" + countlines);

2 个答案:

答案 0 :(得分:1)

这就是你想要的吗?

 int count = File.ReadAllLines().Count(x=>x.Contains("MONKEY"));

Linq是Luvly!

答案 1 :(得分:0)

这个怎么样:(对于每个文件)

string[] lines = File.ReadAllLines(filePath)
int count = lines.Count(input => input.Contains("ProductServices") && 
                                 input.Contains("Add Product"));