7

テキストファイルから最初と最後の行を削除するために、stackoverflowでこのコードを見つけました。

しかし、このコードを1つに結合して、単一のファイルから最初と最後の行を削除する方法がわかりませんか?

私が試したのは、ストリームリーダーを使用してファイルを読み取り、最初と最後の行をスキップしてからストリームライターを使用して新しいファイルに書き込むことでしたが、適切な構造を取得できませんでした。

最初の行を削除します。

var lines = System.IO.File.ReadAllLines("test.txt");
System.IO.File.WriteAllLines("test.txt", lines.Skip(1).ToArray());

最後の行を削除します。

   var lines = System.IO.File.ReadAllLines("...");
System.IO.File.WriteAllLines("...", lines.Take(lines.Length - 1).ToArray());
4

3 に答える 3

21

Skipメソッドとメソッドを連鎖させることができTakeます。Takeメソッドで適切な行数を差し引くことを忘れないでください。最初にスキップすればするほど、残りの行は少なくなります。

var filename = "test.txt";
var lines = System.IO.File.ReadAllLines(filename);
System.IO.File.WriteAllLines(
    filename, 
    lines.Skip(1).Take(lines.Length - 2)
);
于 2013-06-24T11:28:32.677 に答える
1

ArraySegment<string>代わりに使用する別のアプローチを次に示します。

var lines = File.ReadAllLines("test.txt");
File.WriteAllLines("test.txt", new ArraySegment<string>(lines, 1, lines.Length-2));
于 2013-06-24T11:41:33.670 に答える