Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 742953e4 authored by Michael KRISPER's avatar Michael KRISPER
Browse files

VectoCSVFile: Faster writing of CSV files

parent 5d99f030
No related branches found
No related tags found
No related merge requests found
......@@ -198,20 +198,25 @@ namespace TUGraz.VectoCore.Utils
var header = table.Columns.Cast<DataColumn>().Select(col => col.Caption ?? col.ColumnName);
writer.WriteLine(string.Join(Delimiter, header));
foreach (DataRow row in table.Rows) {
var row1 = row;
var formattedList = table.Columns.Cast<DataColumn>().Select(col => {
var item = row1[col];
var decimals = (uint?)col.ExtendedProperties["decimals"];
var outputFactor = (double?)col.ExtendedProperties["outputFactor"];
var showUnit = (bool?)col.ExtendedProperties["showUnit"];
var si = item as SI;
return si != null
? si.ToOutputFormat(decimals, outputFactor, showUnit)
: string.Format(CultureInfo.InvariantCulture, "{0}", item);
});
var columnFormatter = new Func<SI, string>[table.Columns.Count];
for (var i = 0; i < table.Columns.Count; i++) {
var col = table.Columns[i];
var decimals = (uint?)col.ExtendedProperties["decimals"];
var outputFactor = (double?)col.ExtendedProperties["outputFactor"];
var showUnit = (bool?)col.ExtendedProperties["showUnit"];
columnFormatter[i] = item => item.ToOutputFormat(decimals, outputFactor, showUnit);
}
foreach (DataRow row in table.Rows) {
var items = row.ItemArray;
var formattedList = new string[items.Length];
for (var i = 0; i < items.Length; i++) {
var si = items[i] as SI;
formattedList[i] = si != null
? columnFormatter[i](si)
: formattedList[i] = string.Format(CultureInfo.InvariantCulture, "{0}", items[i]);
}
writer.WriteLine(string.Join(Delimiter, formattedList));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment