对文本文件中满足条件的行进行计数

本文关键字:条件 文本 文件 满足 | 更新日期: 2023-09-27 18:18:16

我有2个来自微软LINQ样本的脚本。第一个将计算文本文件中的所有文本行数。第二个将只列出满足特定条件的记录。

如何将相同的条件应用于第一个计数脚本?

string[] records = File.ReadAllLines(@"C:'Reports'MyReports.txt");
try
{
    int numberOfRecords = records.Count();
    Console.WriteLine(
        "There are {0} records in the text file.",
        numberOfRecords);
}
catch (OverflowException)
{
    Console.WriteLine("The count is too large to store as an Int32.");
    Console.WriteLine("Try using the LongCount() method instead.");
}
var targetLines = File.ReadAllLines(@"C:'Reports'MyReports.txt")
          .Select((x, i) => new { Line = x, LineNumber = i })
          .Where( x => x.Line.Contains(".dwg"))
          .ToList();
foreach (var line in targetLines)
            {
                Console.WriteLine("{0} : {1}", line.LineNumber, line.Line);
            }
            File.WriteAllText (@"C:'Reports'MyReports2.txt", Util.ToCsvString (targetLines));

对文本文件中满足条件的行进行计数

如何将相同的条件应用于第一个计数脚本?

:

int numberOfRecords = records.Count(x => x.Line.Contains(".dwg"));

这个想法是改变你正在调用的方法:代替无参数的*方法,调用接受条件的重载。

*从技术上讲,Count()接受一个参数-应用它的列表。该参数不可见,因为它是使用扩展方法语法隐式传递的。