将数据从CSV读取到数组数组(C#)

我打开了CSV文件,但我无法弄清楚如何将结果数组拆分为另一个数组。 我目前有以下代码,希望它更能让我了解我的意思:

private void ReadFileToArray(StreamReader file) { int i = 0; string[][] FP_GamesArray; while (!file.EndOfStream) { string line = file.ReadLine(); if (!String.IsNullOrWhiteSpace(line)) { string[] values = line.Split(','); MessageBox.Show(values.ToString()); FP_GamesArray[i] = values; } i++; } } 

有任何想法吗? 我得到两个错误:一个说Cannot implicitly convert type 'string[]' to 'string' ,第二个说Use of unassigned local variable 'FP_GamesArray'

你需要初始化你的数组,为此你需要知道那里有多少行。

您可以执行以下操作,而不是逐行阅读:

 string[][] FP_GamesArray = File.ReadLines("path") .Select(line => line.Split(',')) .ToArray(); 

或者,您可以从List ,使用它的add方法,然后在读取完成后将其转换为数组,如下所示:

 List lines = new List(); while (!file.EndOfStream) { string line = file.ReadLine(); if (!String.IsNullOrWhiteSpace(line)) { lines.Add(line.Split(','); } } string[][] FP_GamesArray = lines.ToArray(); 

作为制作清单的补充答案,以下是我能够开展的工作:

  List rows = MyCSVString.Replace("\n", "").Split('\r').ToList(); List> listedMatrix = new List>(); foreach(var x in rows) { if(x != "") { var rowList = x.Split(',').ToList(); listedMatrix.Add(rowList); } } 
  • 是的,逗号会弄乱它,因为这不是真正的解析。