File.ReadLines
This C# method reads lines on demand. We use it in a foreach
-loop, looping over each line as a string
. It can result in clean, simple code.
How does File.ReadLines
work? The program reads in another line before each iteration of the foreach
-loop. It loads the file on-demand.
This program calls the File.ReadLines
method in the foreach
loop iteration block. The File.ReadLines
method is only called once.
IEnumerable
is used to pull in more data. The program successfully prints the data found in the "file.txt" file.File.ReadLines
, the foreach
-loop is the best syntax as it avoids copying the IEnumerable
to another collection in memory.using System; using System.IO; class Program { static void Main() { // Read in lines from file. foreach (string line in File.ReadLines("c:\\file.txt")) { Console.WriteLine("-- {0}", line); } } }-- Line1 -- Line2 -- Line3 -- Another line. -- Last line.
ReadAllLines
ReadLines
and ReadAllLines
are implemented differently. ReadLines
uses an enumerator to read each line only as needed.
ReadAllLines
reads the entire file into memory and then returns an array of those lines.File.ReadLines
method is useful because it will not need to keep all the data in memory at once.File.ReadLines
is better because no further IO will be needed.File.ReadAllLines
method is best if you need the entire array. The array can be stored in a field in a class
.The File.ReadLines
method is similar to using the StreamReader
type and the ReadLine
method in a loop. You can use a foreach
-loop to read in an entire file line-by-line.