将数据从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); } }
- 是的,逗号会弄乱它,因为这不是真正的解析。