[英]Difficulty in writing LINQ Query
我写了一个查询来获取符合条件的行数。
我使用的linq查询是:
int result = File.ReadLines(filePath).Count(line => line.StartsWith(word));
在这里,我要求符合条件的行而不是计数。 请帮忙
File.ReadLines(filePath).Where(line => line.StartsWith(word));
只需将其更改为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
,它在File.ReadLines
使用StreamReader
。 使用后将其丢弃。 因此,这将引发异常,因为查询已在ToList
执行:
int count = linesMatching.Count();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.