我打开了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'
。
答案 0 :(得分:6)
你需要初始化你的数组,为此你需要知道那里有多少行。
您可以执行以下操作,而不是逐行阅读:
string[][] FP_GamesArray = File.ReadLines("path")
.Select(line => line.Split(','))
.ToArray();
或者说,你可以从List<string[]>
开始,使用它的add方法,然后在读完后将其转换为数组,如下所示:
List<string[]> lines = new List<string[]>();
while (!file.EndOfStream)
{
string line = file.ReadLine();
if (!String.IsNullOrWhiteSpace(line))
{
lines.Add(line.Split(',');
}
}
string[][] FP_GamesArray = lines.ToArray();
答案 1 :(得分:0)
作为制作清单的补充答案,以下是我能够开展的工作:
List<string> rows = MyCSVString.Replace("\n", "").Split('\r').ToList();
List<List<string>> listedMatrix = new List<List<string>>();
foreach(var x in rows)
{
if(x != "")
{
var rowList = x.Split(',').ToList();
listedMatrix.Add(rowList);
}
}