Linq To Text Files

后端 未结 3 946
猫巷女王i
猫巷女王i 2020-12-09 14:14

I have a Text File (Sorry, I\'m not allowed to work on XML files :(), and it includes customer records. Each text file looks like:

Account_ID: 98734BLAH9873
         


        
相关标签:
3条回答
  • 2020-12-09 14:43

    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.

    0 讨论(0)
  • Filehelpers is a really great open source solution to this:

    http://filehelpers.sourceforge.net/

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

    [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;
    }
    

    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.

    0 讨论(0)
  • 2020-12-09 14:53

    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.

    0 讨论(0)
提交回复
热议问题