0

我编写了一个查询来获取符合条件的行数。

我使用的 linq 查询是:

int result = File.ReadLines(filePath).Count(line => line.StartsWith(word));

在这里,我需要符合条件的行而不是计数。请帮忙

4

4 回答 4

2
File.ReadLines(filePath).Where(line => line.StartsWith(word));

只需将其更改为 a 即可Where

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx

根据谓词过滤一系列值。

于 2013-10-08T14:43:49.880 回答
2

使用地点

List<string> lines = File.ReadLines(filePath)
                         .Where(line => line.StartsWith(word)).ToList();

然后你可以这样做:

int count = lines.Count;

获取与谓词匹配的行数

于 2013-10-08T14:44:29.980 回答
1
var lines = File.ReadLines(filePath).Where(line => line.StartsWith(word));
var total = lines.Count;
于 2013-10-08T14:44:41.787 回答
0
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();
于 2013-10-08T14:44:15.860 回答