对文本文件中满足条件的行进行计数
本文关键字:条件 文本 文件 满足 | 更新日期: 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()
接受一个参数-应用它的列表。该参数不可见,因为它是使用扩展方法语法隐式传递的。