条件に一致する行数を取得するクエリを作成しました。
私が使用した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));
Where
代わりに a に変更するだけです。
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
述語に基づいて一連の値をフィルタリングします。
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();