File.ReadAllLines(FileName)阵列大小限制[英] File.ReadAllLines(FileName) array size limit

问题描述

如果我使用:

string FileName = "我的文件.txt";string[] DataFile = File.ReadAllLines(FileName);


现在说文件有 5 行...
因此,DataFile 数组的最后一行文件将位于 4.

如果我想在 DataFile[5] 上添加一行(它位于数组的底部并超过文件位置的末尾),我会得到一个可以理解的 OutOfRangeException.做我想做的事的最好方法是什么?本质上,我希望调整数组的大小.

推荐答案

正如 GanesanSenthilvel 所说,使用 List<string>而是使用 Array.Resize() 方法.

以下是一些例子:

列表<字符串>dataFile = new List();dataFile.AddRange(File.ReadAllLines(FileName));


然后你可以以同样的方式添加其他文件行
dataFile.AddRange(File.ReadAllLines(SomeOtherFile));



string[] data = new string[] { "blah", "废话", "等等等等" };dataFile.AddRange(data);


或单行
dataFile.Add("某行数据");

string someData = "呸呸呸呸";dataFile.Add(someData);


如果你真的想使用 Array.Resize() 方法,你可以,即
string[] data = new 字符串[2];data[0] = "一些数据";data[1] = "更多数据";Array.Resize(ref data, data.Length + 1);data[2] = "更多数据";

您的目标是在现有文件末尾添加行
你为什么不使用这个代码


StreamWriter sw= File.AppendText("c:\\temp.txt");
            sw.WriteLine();
            sw.WriteLine("hello");
            sw.Flush();
            sw.Close();


谢谢
--RA

代替String数组,你可以很好地使用
List<string></string>
避免 OutOfRangeException

本文地址:https://www.itbaoku.cn/post/1394743.html