抽象的な話ばかり続いたので、今回は、実用的な例を示そう。 .NETでCSVファイルを読み取るとき、まさか自分でパースしたりしていないと思うが、知っていると便利なクラスが「VB.NET」のライブラリに存在する。TextFieldParserクラスだ。VB向けの実装の割には、Streamからの読み取りに対応しているなど、割としっかり作ってある。 今回はこのクラスをLINQで「楽に」使えるようにする。 public static class TextField { // 指定されたCSVファイルへのコンテキストを生成する public static IEnumerable<string[]> Context( string path, string separator = ",", Encoding encoding = null) { using (Stream stream = new Fi