c#使用CsvHelper

By admin at 2023-02-09 • 0人收藏 • 670人看过
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);
        }
    }

}

CsvHelper.zip


2 个回复 | 最后更新于 2023-02-10
2023-02-10   #1

C#读写csv的方式和Golang很像,都是先要申明好Record的数据结构,然后把csv的记录依次读到结构体中。

而aardio和Python读写csv就简单得多,基本就当成一个列表或者数组就行了。

当然,严谨的好处就是处理速度快,出错的几率小。而宽松的好处就是语法简单,对于数据量小的数据(百万级以下)其实读写速度差异并不明显。

2023-02-10   #2

回复#1 @jerryxjr1220 :

对, 内部都是io直接读写, 速度没啥问题, 这两天研究下c#感受下和aardio的区别, 哈

c#里面的库很多aar都可以直接利用

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...