useful Iterator

public static IEnumerable<string> TextFileReader( string fileName )
{
  using ( StreamReader sr = new StreamReader( fileName ) )
  {
    string line;
    while ( ( line = sr.ReadLine() ) != null )
      yield return line;
  }
}

public static IEnumerable<string> TextFileReader( string[] fileNames )
{
  foreach ( string fileName in fileNames )
  {
    using ( StreamReader sr = new StreamReader( fileName ) )
    {
      string line;
      while ( ( line = sr.ReadLine() ) != null )
        yield return line;
    }
  }
}

行単位で構造化されたテキストに対してこのイテレータを使えば、LINQでただのテキストに向かってSQLを投げる幻想がみれるはず。試してないけど。