You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#控制台修改CSV文件内容后无法保存到原文件问题求助

问题根因

你将CSV回写逻辑放在了Tabelle类的析构函数~Tabelle()中,C#的终结器(析构函数)由垃圾回收器(GC)控制执行时机,程序正常退出时不一定会触发终结器执行,因此写文件逻辑从未运行,自然不会修改原文件内容。

解决方案

推荐使用确定性执行的显式保存方案:

步骤1:给Tabelle类新增独立Save方法

把写文件逻辑从析构函数迁移到独立的公共方法中,示例代码如下:

public void Save()
{
    string[] information = new string[liste.Count];
    for (int i = 0; i < liste.Count; i++)
    {
        information[i] = $"{liste[i].Number};{liste[i].Name};{liste[i].Salary}";
    }
    File.WriteAllLines(@"C:\Users\rbc\Desktop\csvtest\csvtest\obj\test.csv", information);
}
// 可删除原有的~Tabelle()析构函数逻辑,避免不可预期的执行

步骤2:修改主方法,主动调用保存

完成数据修改后主动触发保存操作:

static void Main(string[] args)
{
    Tabelle tab = new Tabelle();
    foreach (Employees e in tab.getAll())
    {   
        Console.WriteLine(e);
    }
    tab.updating(1, "fafdsdsf", 323);
    // 新增主动调用保存逻辑
    tab.Save();
}

额外优化建议

  • 建议对文件读写操作添加try-catch异常捕获,处理文件被占用、路径无权限等异常场景
  • 涉及double转字符串时,建议指定固定格式,避免系统区域设置的小数点分隔符差异导致CSV解析错误

内容的提问来源于stack exchange,提问作者Alexa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:09:04