public LineOfInputData ExtractValueFromLine(string inputLine) { var data = new LineOfInputData(); var lineData = inputLine.Split(',').ToList(); var count = 0; var yearNumber = 1960;//the starting year in the sample for (var i = 0; i < lineData.Count; i++) { lineData[i] = lineData[i].Trim(); if (i < lineData.Count - 2) { //if you have a middle " if (lineData[i].Length > 0 && lineData[i][0] == '"' && lineData[i][lineData[i].Length - 1] != '"') //this means the string belongs together with the next { lineData[i + 1] = lineData[i] + lineData[i + 1]; continue; } } switch (count) { case 0: data.CountryName = lineData[i]; break; case 1: data.CountryCode = lineData[i]; break; //number 2 is inicator name, in which we are not interested, as we use the indicator code column case 2: //indicator name, we use the code break; case 3: data.IndicatorCode = lineData[i]; break; default: double parsedValue = 0; if (Double.TryParse(lineData[i], out parsedValue)) { data.YearValues.Add(yearNumber, parsedValue); } yearNumber++; break; } count++; } return(data); }
public LineOfInputData ExtractValueFromLine(string inputLine) { var data = new LineOfInputData(); var lineData = inputLine.Split(',').ToList(); var count = 0; var yearNumber = 1960;//the starting year in the sample for (var i = 0; i < lineData.Count; i++) { lineData[i] = lineData[i].Trim(); if (i < lineData.Count - 2) {//if you have a middle " if (lineData[i].Length > 0 && lineData[i][0] == '"' && lineData[i][lineData[i].Length - 1] != '"')//this means the string belongs together with the next { lineData[i + 1] = lineData[i] + lineData[i + 1]; continue; } } switch (count) { case 0: data.CountryName = lineData[i]; break; case 1: data.CountryCode = lineData[i]; break;//number 2 is inicator name, in which we are not interested, as we use the indicator code column case 2://indicator name, we use the code break; case 3: data.IndicatorCode = lineData[i]; break; default: double parsedValue = 0; if (Double.TryParse(lineData[i], out parsedValue)) { data.YearValues.Add(yearNumber, parsedValue); } yearNumber++; break; } count++; } return data; }