【问题标题】:How to use FileHelpers with records with a hierarchical structure?如何将 FileHelpers 与具有层次结构的记录一起使用?
【发布时间】:2016-04-06 08:38:52
【问题描述】:

我有这样的课

public class Foo
{
    public string Name { get; set; }

    private List<string> _bar = new List<string>();
    public List<string> Bar
    {
        get { return _bar; }
        set { _bar = value; }
    }
}

我的 .csv 文件如下所示:

Foo;Bar
A;B
A;C

所以我想要一个名称为“A”的 Foo 对象和一个带有“B”和“C”的 Bar-list(或数组)。

是否可以使用 FileHelpers 简单地解析我的 .csv 文件?还是其他图书馆?不要费心使用 3rd 方工具创建更复杂的解决方案(使用 for 循环左右)。然后我将使用 .NET 创建一个标准解决方案。

【问题讨论】:

    标签: c# csv hierarchical-data filehelpers


    【解决方案1】:

    所以你的 FileHelpers 类应该是这样的:

    [DelimitedRecord(";")]
    public class FooSpec
    {
        public string Name;
        public string Bar;
    }
    

    将所有记录读入一个数组并用 Linq 进行调整。

    var engine = new FileHelperEngine<FooSpec>();
    // ReadFile returns an array of Foo
    var records = engine.ReadFile(filename);
    
    var fooRecords = list
                 .GroupBy(x => x.Name)
                 .Select(x => 
                    new Foo() { 
                      Name = x.Key, 
                      Bar = x.Select(y => y.Bar).ToList() 
                    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多