Accepted answer

You can use the code like that

var pairs = File.ReadAllLines("filename.txt")
    .Select(line => line.Split(':'))
    .ToDictionary(cells => cells[0].Trim(), cells => cells[1].Trim())

Or use the .NET 4.0 File.ReadLines() method to return an IEnumerable, which is useful for processing big text files.


Filehelpers is a really great open source solution to this:

You just declare a class with attributes, and FileHelpers reads the flat file for you:

public class PriceRecord
    public int ProductId;

    public decimal PriceList;

    public decimal PriceOnePay;

Once FileHelpers gives you back an array of rows, you can use Linq to Objects to query the data

We've had great success with it. I actually think Kaerber's solution is a nice simple solution, maybe stave of migrating to FileHelpers till you really need the extra power.


The concept of a text file data source is extremely broad (consider that XML is stored in text files). For that reason, I think it is unlikely that such a beast exists.

It should be simple enough to read the text file into a collection of Account objects and then use LINQ-to-Objects.

Related Query

More Query from same tag