c#使用CsvHelper
By
admin
at 2023-02-09 • 0人收藏 • 654人看过
public class LineCode { public string masterCode { get; set; } public string slaveCode { get; set; } public string code1 { get; set; } public string code2 { get; set; } } public void runCode( LineCode code) { switch (code.masterCode) { case "运动控制": switch (code.slaveCode) { case "相对运动": Console.WriteLine($"运动控制/相对运动/{code.code1}/{code.code2}"); break; case "绝对运动": Console.WriteLine($"运动控制/绝对运动/{code.code1}/{code.code2}"); break; default: break; } break; default: break; } } private void simpleButton1_Click(object sender, EventArgs e) { if (File.Exists("file.csv")) { using (var reader = new StreamReader("file.csv",Encoding.GetEncoding("GB2312"))) using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { var records = csv.GetRecords<LineCode>(); foreach (var item in records) { runCode(item); } } } else { List<LineCode> Listv = new List<LineCode> { new LineCode { masterCode = "运动控制", slaveCode = "绝对运动", code1 = "轴1", code2 = "1000" }, new LineCode { masterCode = "运动控制", slaveCode = "相对运动", code1 = "轴2", code2 = "2000" }, new LineCode { masterCode = "运动控制", slaveCode = "绝对运动", code1 = "轴3", code2 = "3000" }, new LineCode { masterCode = "运动控制", slaveCode = "相对运动", code1 = "轴4", code2 = "4000" }, }; using (var writer = new StreamWriter("file.csv",false, Encoding.GetEncoding("GB2312"))) using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.WriteRecords(Listv); } } }
2 个回复 | 最后更新于 2023-02-10
登录后方可回帖
C#读写csv的方式和Golang很像,都是先要申明好Record的数据结构,然后把csv的记录依次读到结构体中。
而aardio和Python读写csv就简单得多,基本就当成一个列表或者数组就行了。
当然,严谨的好处就是处理速度快,出错的几率小。而宽松的好处就是语法简单,对于数据量小的数据(百万级以下)其实读写速度差异并不明显。