【问题标题】:How to: Add a string to a string array using File.ReadAllLines如何:使用 File.ReadAllLines 将字符串添加到字符串数组
【发布时间】:2014-05-30 09:57:54
【问题描述】:

如何:使用 File.ReadAllLines 将字符串添加到字符串数组

我认为问题很明确:我想向现有字符串数组添加一个新字符串,该数组从 File.ReadAllLines 获取 ist 内容。

public void CreateNewFolder()
{
    string[] lines = File.ReadAllLines(stringFile, Encoding.UTF8);
    lines[lines.Length + 1] = "Test";
    File.WriteAllLines(stringFile, lines, Encoding.UTF8);
}

数组的索引“太小”,但我不知道为什么。

【问题讨论】:

标签: c# arrays string file.readalllines


【解决方案1】:

该错误是由于数组的长度是固定的,并且最后一个索引(您要添加新项目的位置)始终在数组之外。 您可以改用列表:

public void CreateNewFolder()
{
    List<String> lines = File.ReadAllLines(stringFile, Encoding.UTF8).ToList();
    lines.Add("Test");
    File.WriteAllLines(stringFile, lines.ToArray(), Encoding.UTF8);
    //Calling the ToArray method for lines is not necessary 
} 

【讨论】:

  • 您可能希望在您的答案中添加他收到错误的信息,因为数组一旦定义就具有固定长度。清单是要走的路。 +1
  • ToList() 没有定义。
  • @middelpat:很好的建议,会添加它
  • @Exception 包括“使用 System.Linq;”
  • 最终答案!完美的。非常感谢!
【解决方案2】:

您收到错误是因为您尝试更改超出当前数组长度的项目。您可以使用Array.Resize&lt;T&gt;先调整数组大小,然后更改最后一项

public void CreateNewFolder()
{
    string[] lines = File.ReadAllLines(stringFile, Encoding.UTF8);
    Array.Resize(ref lines, lines.Length + 1);
    lines[lines.Length - 1] = "Test";
    File.WriteAllLines(stringFile, lines, Encoding.UTF8);
}

【讨论】:

    猜你喜欢
    • 2015-03-09
    • 2012-12-15
    • 2023-01-19
    • 1970-01-01
    • 2021-12-30
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多