Konvertiert eine CSV-Datei mit n-Spalten.
Der Funktion wird der Separator, der Dateiname, die Filterfunktion (Filter über Zeilennummer möglich) und das Zielformat als Lambda-Expression übergeben.
Dabei ruft der Converter Zeilenweise die Projection auf um die konvertierung durchzuführen.
Beispiel:
XElement result = new XElement( "root",
ConvertCsvTo<XElement> ( "felder_mit_beschreibung.txt", '\t',
row => row > 0,
columns => new XElement ( "bereich",
new XAttribute ( "name", columns[ 0 ] ),
new XElement ( "feld",
new XElement ( "name", columns[ 2 ] ),
new XElement ( "beschreibung", columns[ 1 ] )))));
In diesem Beispiel wird die Ergebnissmenge in einen Wurzelknoten (root) gepackt. Transformiert wird eine CSV-Datei mit 3 Spalten, die durch einen Tabulator getrennt ist. Der Header interessiert dabei nicht, daher die Filterbedingung row > 0. Zum Schluss werden die Spalten in einem gewüschten Format in Form gebracht. Hier XML.
Genauso denkbar wäre eine Projektion auf XAML, Excell-Tabelle,vielleicht HTML, oder was auch immer.