2016-04-06 12 views
0

BuFileHelpers, hiyerarşik bir yapıya sahip kayıtlarla nasıl kullanılır?

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

Benim .csv dosyası gibi bir sınıf şuna benzer vardır:

Foo;Bar 
A;B 
A;C 

yüzden ismi "A" ile Foo nesne ve bir Bar-listesi var istiyorum (veya "B" ve "C" ile bir dizi).

sadece FileHelpers ile benim .csv dosyasını ayrıştırmak mümkün mü? Ya da başka bir kütüphane? 3. taraf bir araçla daha karmaşık bir çözüm (for-loop veya benzeri) oluşturmak için uğraşmayın. Sonra .NET ile standart bir çözüm oluşturacağım.

cevap

0

Yani FileHelpers sınıf aşağıdaki gibi görünmelidir:

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

bir diziye tüm kayıtları okuma ve Linq ile ayarlayın.

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() 
       }); 
İlgili konular