LINQのメソッドチェーンで書けないか?ということだと思います。LINQを利用するためにはメソッドチェーン初段がLINQをサポートしているなんらかの型(列的なもの)が前提ですので
FileStream.Read(buffer,0,buffer.length)
戻り値が読み込めたバイト数で副作用が主目的であるReadのようなメソッドでは後段につなげることができません。
他の言語やライブラリーではI/Oもパイプラインとして処理しやすいように、副作用によるインターフェースではなく読み込んだデータそのものをbyteの列、あるいは行単位のstringの列として返すようなインターフェースがよく用いられます。FileStreamはそういうものを備えていませんが、そういう使い方をしたい場合はextensionメソッドを自分で定義しLINQのメソッドチェーンの初段となり得るようにすれば利用できるようになります。
C++
1public static class MyCSharpExtension {
2 // extension method の定義例
3 public static IEnumerable<byte> ReadBytes(this FileStream fs) {
4 byte[] buffer = new byte[4096];
5 for (;;) {
6 int len = fs.Read(buffer, 0, buffer.Length);
7 if (len == 0)
8 break;
9 for (int i = 0; i < len; i++)
10 yield return buffer[i];
11 }
12 }
13}
14...
15// 利用例
16using (fs = new FileStream(...)) {
17 fs.ReadBytes().Where(b => b != ' ').Selet( ... );
18}