public static IList <string[]> GetCsvCacheFile(string fileName) { string key = fileName; if (!FileParser.__csvFilesCached.ContainsKey(key)) { lock (FileParser.__csvFilesCached) { if (!FileParser.__csvFilesCached.ContainsKey(key)) { IList <string[]> strArrayList = (IList <string[]>) new List <string[]>(); using (Stream stream = FileParser.GetStream(fileName)) { if (stream.CanSeek) { stream.Seek(0L, SeekOrigin.Begin); } using (StreamReader streamReader = new StreamReader(stream)) { while (!streamReader.EndOfStream) { string line = streamReader.ReadLine(); if (!string.IsNullOrWhiteSpace(line)) { strArrayList.Add(CsvLine.Split(line).ToArray <string>()); } } } } FileParser.__csvFilesCached.Add(key, strArrayList); } } } return(FileParser.__csvFilesCached[key]); }
public ImportCsv(string FilePath, string separator = ",") //Get filepath and convert into list of strings { string CsvValues = ""; if (!FilePath.EndsWith(".csv")) { FilePath += ".csv"; } using (StreamReader CsvReader = new StreamReader(File.OpenRead(FilePath))) { CsvValues = CsvReader.ReadToEnd(); } string[] CsvLines = CsvValues.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string CsvLine in CsvLines) { this.CsvList.Add(CsvLine.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); } }
static void Main(string[] args) { string CsvFilePath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Csv.csv"); var CsvLines = File.ReadAllLines(CsvFilePath); var CsvGroups = CsvLines.GroupBy(CsvLine => new { cols1 = CsvLine.Split(',')[0], cols2 = CsvLine.Split(',')[1], }); List <DataGroup> DataList = new List <DataGroup>(); foreach (var CsvGroup in CsvGroups) { List <Data> Datas = new List <Data>(); foreach (var CsvLine in CsvGroup) { string[] cols = CsvLine.Split(','); Datas.Add(new Data() { DataCode = cols[0], DataName = cols[1], Colspan3 = cols[2], Colspan4 = cols[3], Colspan5 = cols[4], }); } DataList.Add(new DataGroup() { GroupCode = CsvGroup.Key.cols1, Datas = Datas }); } var TicketJson = JsonConvert.SerializeObject(DataList); string JsonFilePath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Json.json"); File.WriteAllText(JsonFilePath, TicketJson); }