4

我想string[]分配一个StreamReader. 像:

try{
    StreamReader sr = new StreamReader("a.txt");
    do{
        str[i] = sr.ReadLine();
        i++;
    }while(i < 78);
}
catch (Exception ex){
    MessageBox.Show(ex.ToString());
}

我可以做到但不能使用字符串[]。我想做这个:

MessageBox.Show(str[4]);

如果您需要更多信息,请随时询问,我会更新。提前致谢...

4

1 回答 1

14

如果你真的想要一个字符串数组,我会稍微不同地处理这个。假设您不知道文件中有多少行(我忽略了 78 行的硬编码值),您无法预先创建string[]正确大小的 a。

相反,您可以从一组字符串开始:

var list = new List<string>();

将循环更改为:

using (var sr = new StreamReader("a.txt"))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        list.Add(line);
    }
}

然后从您的列表中请求一个字符串数组:

string[] result = list.ToArray();

更新

Cuong's answer 的启发,您绝对可以将其缩短。我在File课堂上忘记了这个宝石:

string[] result = File.ReadAllLines("a.txt");

File.ReadAllLines引擎盖下的内容实际上与我上面提供的代码相同,除了 Microsoft 使用 an而ArrayList不是 a List<string>,最后它们string[]通过return (string[]) list.ToArray(typeof(string));.

于 2012-09-28T05:03:23.010 回答