0

方法: File.ReadAllLines を使用して文字列配列に文字列を追加します。

質問は明確だと思います: 既存の文字列配列に新しい文字列を追加したいのですが、File.ReadAllLines.

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

配列のインデックスが「小さすぎる」のですが、原因がわかりません。

4

2 に答える 2

3

配列の長さが固定されており、最後のインデックス (新しい項目を追加する場所) が常に配列の外側にあるため、エラーが発生します。代わりにリストを使用できます。

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 
} 
于 2014-05-30T10:01:19.037 に答える
0

現在の配列の長さを超えてアイテムを変更しようとすると、エラーが発生します。Array.Resize<T>最初に配列のサイズを変更してから、最後の項目を変更するために使用できます

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);
}
于 2014-05-30T10:04:13.363 に答える