Eric White has a great example of using LINQ to stream a text file rather than load the whole file in to memory here.
The StreamReaderSequence class provides an extension method for the StreamReader class called Lines which will load each line one by one.
The code taken from Erics blog article:
Using the above technique means you can process very large text files using a small memory footprint, great stuff!
You cannot use aggregation query operators because they need to iterate all the results to compute their own result. That means you cannot use Aggregate, Average, Count, LongCount, Max, Min and Sum operators.
You cannot use sequenced operators such as OrderBy, OrderByDescending and Reverse for similar reasons to above.
Eric White's Blog
Eric White LINQ to Text File (streaming) article