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
相关产品推荐
相关产品推荐

