我有一个看起来像这样的文本文件:

1,Smith, 249.24, 6/10/2010
2,Johnson, 1332.23, 6/11/2010
3,Woods, 2214.22, 6/11/2010
1,Smith, 219.24, 6/11/2010

我需要能够找到给定日期的客户余额。

我想知道我是否应该:

答:从头开始,将每一行读入一个数组,一次一行。
检查姓氏索引以查看它是否是我们要查找的客户端。
然后,显示第一个匹配项的余额索引。

或者

B.使用RegEx查找并显示一个匹配项。

我在RegEx上没有太多经验,但是如果在这种情况下不费吹灰之力,我将学习它。

最佳答案

我建议使用 FileHelpers 开源项目:
http://www.filehelpers.net/

小菜一碟:

定义你的类:

[DelimitedRecord(",")]
public class Customer
{
    public int CustId;

    public string Name;

    public decimal Balance;

    [FieldConverter(ConverterKind.Date, "dd-MM-yyyy")]
    public DateTime AddedDate;

}

用它:
var engine = new FileHelperAsyncEngine<Customer>();

// Read
using(engine.BeginReadFile("TestIn.txt"))
{
   // The engine is IEnumerable
   foreach(Customer cust in engine)
   {
      // your code here
      Console.WriteLine(cust.Name);

      // your condition >> add balance
   }
}

关于c# - 解析 CSV 格式的文本文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3079923/

10-09 19:08