Filehelpers - действительно отличное решение с открытым исходным кодом для этого:
http://filehelpers.sourceforge.net/
Вы просто объявляете класс с атрибутами, а FileHelpers считывает для вас плоский файл:
[FixedLengthRecord]
public class PriceRecord
{
[FieldFixedLength(6)]
public int ProductId;
[FieldFixedLength(8)]
[FieldConverter(typeof(MoneyConverter))]
public decimal PriceList;
[FieldFixedLength(8)]
[FieldConverter(typeof(MoneyConverter))]
public decimal PriceOnePay;
}
Как только FileHelpers возвращает вам массив строк, вы можете использовать Linq to Objects для запроса данных
У нас был большой успех с этим. Я на самом деле думаю, что решение Kaerber - это хорошее простое решение, возможно, остановите переход на FileHelpers, пока вам действительно не понадобятся дополнительные возможности.