0

条件に一致する行数を取得するクエリを作成しました。

私が使用したlinqクエリは次のとおりです。

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

ここでは、カウントではなく基準に一致する行が必要です。助けてください

4

4 に答える 4

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

Where代わりに a に変更するだけです。

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

述語に基づいて一連の値をフィルタリングします。

于 2013-10-08T14:43:49.880 に答える
0
IEnumerable<string> linesMatching = File.ReadLines(filePath)
    .Where(line => line.StartsWith(word));

このようにして、行と、そこからコレクションを作成する場合は、カウントも得られます。

List<string> lines = linesMatching.ToList();
int count = lines.Count;

File.ReadLines内部で使用する which を使用しているため、一度実行するとクエリを再利用できないことに注意してくださいStreamReader。使用したら廃棄です。でクエリがすでに実行されているため、これにより例外が発生しますToList

int count = linesMatching.Count();
于 2013-10-08T14:44:15.860 に答える