【发布时间】:2012-12-26 08:05:05
【问题描述】:
我正在尝试读取一个由管道分隔的充满医疗记录的文本文件。大约有 20 列数据和数百万行。文本文件的大小约为 1GB。
第一步是读取数据。这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
string strFilePath = @"abcrecords.txt";
string[,] myArray;
using (FileStream fs = new FileStream(strFilePath, FileMode.Open))
using (StreamReader rdr = new StreamReader(fs))
{
while (!rdr.EndOfStream)
{
string[] strFileLine = rdr.ReadLine().Split('|');
{
myArray = strFileLine;
}
}
}
}
如何将分割线(有 20 个元素)的结果放入myArray 的第一行。然后将每个新的分割线添加到myArray?现在,我得到了错误:
错误无法将类型'string[]'隐式转换为'string[,]'
【问题讨论】:
-
你为什么要为
myArray声明一个二维数组? -
@Oded 我认为最终的数组是二维的,即。 20 列和 X 数百万行?也许我做错了?
-
就像 SLaks 说的,你想要一个 List
。你不知道文件有多少行,所以声明一个数组来保存记录是没有意义的。 -
@phan - 好的,但是您正在尝试将 单 维数组分配给
myArray = strlFileLine;中的 二维 维数组。 -
这段代码有很多问题... (1) 使用单个
using语句,您只有一个资源; (2) 使用List<>,而不是数组,(3) 进行一些错误处理,否则如果文件不存在,您的应用程序将崩溃; (4) 读取while中的字符串,检查是否不为null而不是EndOfStream冗余调用
标签: c# multidimensional-array visual-studio-2012