计算文本文件中的行数
本文关键字:文本 文件 计算 | 更新日期: 2023-09-27 18:21:06
我在一个文本文件中有以下行,我需要知道有多少行以Y结尾,有多少行是以N结尾。
在Y之后和N之后有一个空格。
速度越快越好,因为它可能包含大约一百万行。(所以我不想遍历每一行)
当然,需要循环遍历每一行。真的无法回避。然后,您可以使用LINQ来比较容易地计算它们:
var query = File.ReadLines("file.txt")
.Select(line => new { Y = line.EndsWith("Y ") ? 1 : 0,
N = line.EndsWith("N ") ? 1 : 0 })
.Aggregate(new { Y = 0, N = 0 },
(current, next) => new { Y = current.Y + next.Y,
N = current.N + next.N });
var yCount = query.Y;
var nCount = query.N;
如果Y/N后面没有正好一个空格,请将其更改为使用Trim()
。。。例如:
var query = File.ReadLines("file.txt")
.Select(line => line.Trim())
.Select(line => new { Y = line.EndsWith("Y") ? 1 : 0,
N = line.EndsWith("N") ? 1 : 0 })
// remainder of code as before
这将在整个文件中迭代一次,并按顺序计数。诚然,它创建了很多对象,但GC非常好。它不会将整个文件拉入内存,也不会读取两次。