C#中CSV文件的多维数组

问题描述

早上好! 所以我想在 C# 中为 CSV 文件创建一个多维数组。我编写了此代码,但它不起作用。有人可以帮我吗?

        StreamReader sr = new StreamReader(@"C:\_repos\2021-3xhit-p1-team-02\Programm\CodeZuweisen.txt");

      
        string[,] info = new string[10,6];
        int line = 0;

        string content = sr.ReadToEnd();
        string[] s = content.Split(',');

        for (int i = 0; i < s.Length; i++)
        {

            if (i % 6 == 0 && i!=0)
            {
                ++line;
            }
            else
            {
                info[line,i] = s[i];
            }
        }


        lblAusgabe.Text = info[1,2];

如果我要运行这个程序,没有输出? 我已经用 java 编写了它,它也可以工作,但我不喜欢 C# :D。

任何形式的帮助都会很棒! 祝你有美好的一天!

解决方法

首先,string.Split(',') 不是 CSV 解析工具。您应该使用专用的 CSV 解析器和强类型输出,例如。 CSV Helper

其次,ReadToEnd 会给你一个长字符串。解决方法是先用换行分割。但是,在此处使用 锯齿状数组 可能更容易(这会产生 string[][])。锯齿状数组更容易使用,因为您可以使用采用 IEnumerable 的标准 Linq 方法,而且您不需要一直挖掘维度。

示例

var myArray = File.ReadAllLines("FileName")
                  .Select(x => x.Split(','))
                  .ToArray();

// print the results to screen
foreach (var line in myArray)
   Console.WriteLine(string.Join(",",line));

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...