我编写了一个查询来获取符合条件的行数。
我使用的 linq 查询是:
int result = File.ReadLines(filePath).Count(line => line.StartsWith(word));
在这里,我需要符合条件的行而不是计数。请帮忙
我编写了一个查询来获取符合条件的行数。
我使用的 linq 查询是:
int result = File.ReadLines(filePath).Count(line => line.StartsWith(word));
在这里,我需要符合条件的行而不是计数。请帮忙
File.ReadLines(filePath).Where(line => line.StartsWith(word));
只需将其更改为 a 即可Where
。
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
根据谓词过滤一系列值。
使用地点:
List<string> lines = File.ReadLines(filePath)
.Where(line => line.StartsWith(word)).ToList();
然后你可以这样做:
int count = lines.Count;
获取与谓词匹配的行数
var lines = File.ReadLines(filePath).Where(line => line.StartsWith(word));
var total = lines.Count;
IEnumerable<string> linesMatching = File.ReadLines(filePath)
.Where(line => line.StartsWith(word));
这样,您就有了线条,并且 - 如果您从中创建一个集合 - 还有计数:
List<string> lines = linesMatching.ToList();
int count = lines.Count;
请注意,一旦执行查询,您将无法重用该查询,因为您File.ReadLines
使用的是在后台使用 a StreamReader
。一旦使用它就被丢弃。因此,这将引发异常,因为查询已在以下位置执行ToList
:
int count = linesMatching.Count();