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

Visual C# 读取CSV文件无法将内容加载到二维数组问题求助

实现方案

你的现有代码已经完成了CSV按行拆分得到一维数组的逻辑,只需要对每行再按逗号做二次拆分,存入二维数组即可达到要求,修改后的完整代码如下:

private void button1_Click(object sender, EventArgs e)
{
    // 判断用户是否选中了有效文件
    if (openFileDialog1.ShowDialog() != DialogResult.OK)
    {
        return;
    }
    // 读取用户选中的文件路径
    string stFileNamenPath = openFileDialog1.FileName;
    string[] lineArray = null;

    // 用using包裹StreamReader,执行完自动释放资源,避免内存泄漏
    using (StreamReader sr = new StreamReader(stFileNamenPath))
    {
        string strResult = sr.ReadToEnd();
        // 按换行拆分所有行,同时过滤空行避免后续报错
        lineArray = strResult.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
    }

    // 固定2列,初始化对应规格的二维数组
    string[,] csv2DArray = new string[lineArray.Length, 2];
    for (int i = 0; i < lineArray.Length; i++)
    {
        // 对每行按逗号拆分
        string[] items = lineArray[i].Split(',');
        csv2DArray[i, 0] = items[0];
        csv2DArray[i, 1] = items[1];
    }

    // 测试输出,符合你要求的调用效果
    string testVal1 = (string)csv2DArray.GetValue(2, 0);
    string testVal2 = (string)csv2DArray.GetValue(2, 1);
    MessageBox.Show($"调用GetValue(2,0)结果:{testVal1}\n调用GetValue(2,1)结果:{testVal2}");
}

逻辑说明

  • 补全了文件选择的逻辑,只有用户选中有效文件才会执行后续读取操作
  • 拆分行时过滤了空行,避免文件末尾多余空行导致索引越界报错
  • 因为你明确CSV固定为2列,直接初始化对应规格的二维数组,遍历每行拆分后赋值即可,最终生成的csv2DArray完全支持你需要的GetValue(行索引, 列索引)调用规则,索引从0开始计数,和你要求的返回效果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:54:03