2016-04-06 11 views
0

私はこの階層構造のレコードでFileHelpersを使用するにはどうすればよいですか?

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"を付けます。

私の.csvファイルをFileHelpersで簡単に解析できますか?または他のライブラリですか?サードパーティのツールを使用して、より複雑なソリューション(for-loopsなどで)を作成するのは面倒ではありません。次に、.NETで標準ソリューションを作成します。

答えて

0

だからあなた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() 
       }); 
関連する問題