private List <OHLC> LoadData() { var csvParser = new CsvParser.CsvParser(','); IEnumerable <string[]> stockData = csvParser.ParseFile(@"D:\StockData\Maruti.csv", Encoding.Default); //IEnumerable<string[]> stockData = csvParser.ParseFile(@"D:\StockData\Infy.csv", Encoding.Default); //IEnumerable<string[]> stockData = csvParser.ParseFile(@"D:\StockData\Icicibank.csv", Encoding.Default); //IEnumerable<string[]> stockData = csvParser.ParseFile(@"D:\StockData\sbin.csv", Encoding.Default); //IEnumerable<string[]> stockData = csvParser.ParseFile(@"D:\StockData\MRF.csv", Encoding.Default); List <OHLC> quotes = new List <OHLC>(); foreach (string[] record in stockData.Skip(1)) { if (record.Length == 7 && record[1] != "null" && record[2] != "null" && record[3] != "null" && record[4] != "null") { OHLC quote = new OHLC() { //Date = Convert.ToDateTime(record[0]), Open = Convert.ToDouble(record[1]), Close = Convert.ToDouble(record[4]), High = Convert.ToDouble(record[2]), Low = Convert.ToDouble(record[3]), //Volume = Convert.ToInt32(record[5]), //AdjClose = Convert.ToDouble(record[6]), }; quotes.Add(quote); } } return(quotes); }
private void LoadFile(string fileName) { var parser = new CsvParser.CsvParser(','); List <string> headers = null; var results = new Dictionary <string, List <Dictionary <string, string> > >(); var file = parser.ParseFile(fileName, Encoding.Default); foreach (var row in file) { if (headers == null) { headers = new List <string>(); foreach (var header in row) { headers.Add(header.Trim('\"')); } } else { var dict = new Dictionary <string, string>(); for (int i = 0; i < row.Length; i++) { dict.Add(headers[i].Trim('\"'), row[i].Trim('\"')); } if (!results.ContainsKey(dict["Team number"])) { results.Add(dict["Team number"], new List <Dictionary <string, string> >()); Console.WriteLine("Team '{0}' doesn't exist yet.", dict["Team number"]); } results[dict["Team number"]].Add(dict); } } dgvData.Rows.Clear(); if (dgvData.Columns.Count == 0) { foreach (var column in headers) { dgvData.Columns.Add(column, column); } } _stats = new Dictionary <string, Dictionary <string, double> >(); foreach (var teamResults in results) { var dict = new Dictionary <string, List <double> >(); foreach (var result in teamResults.Value) { dgvData.Rows.Add(result.Values.ToArray()); foreach (var item in result) { if (!dict.ContainsKey(item.Key)) { dict.Add(item.Key, new List <double>()); } double value; if (double.TryParse(item.Value, out value)) { dict[item.Key].Add(value); } } } var statsDict = new Dictionary <string, double>(); foreach (var list in dict) { if (list.Value.Count > 0) { statsDict.Add(string.Format("{0} Average", list.Key), list.Value.Average()); statsDict.Add(string.Format("{0} Minimum", list.Key), list.Value.Min()); statsDict.Add(string.Format("{0} Maximum", list.Key), list.Value.Max()); } } _stats.Add(teamResults.Key, statsDict); } var sorted = new List <int>(); foreach (var key in _stats.Keys) { if (!string.IsNullOrWhiteSpace(key)) { sorted.Add(Convert.ToInt32(key)); } } sorted.Sort(); var statsWeCareAbout = new List <Stats>(); foreach (var key in sorted) { var team = key.ToString(); statsWeCareAbout.Add(new Stats() { TeamNumber = team, NumberOfGearsInAutoAverage = _stats[team]["Number of Gears in Auto Average"], NumberOfGearsInTeleOpAverage = _stats[team]["Number of Gears in Tele Average"], RobotTurnedOnLightAverage = _stats[team]["Robot turns on light Average"], }); } dgvStats.Columns.Clear(); dgvStats.Columns.Add("Team Number", "Team Number"); dgvStats.Columns.Add("Auto Gears Average", "Auto Gears Average"); dgvStats.Columns.Add("TeleOp Gears Average", "TeleOp Gears Average"); dgvStats.Columns.Add("Climb Average", "Climb Average"); dgvStats.Columns.Add("Score", "Score"); foreach (var stats in statsWeCareAbout) { dgvStats.Rows.Add(stats.ToArray()); } }