DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33779 / inTopicNo.1)  CSVファイルから指定行を1行削除したい
  
□投稿者/ でん 一般人(1回)-(2018/01/15(Mon) 19:57:32)
  • アイコン環境/言語:[C#] 
    分類:[.NET] 

    テキストファイルから1行削除する
    https://dobon.net/vb/dotnet/file/edittextfile.html

    //最後の1行を削除する
    lines = lines.Take(lines.Length - 1).ToArray();
    //最初の1行を削除するなら、次のようにする
    //lines = lines.Skip(1).ToArray();

    ↑上記ページの行削除を選択行のみ削除にしたいです。
    3行目のみ削除したい場合、
    lines = lines.Skip(3)のように記載すると、
    上から3行目までが削除されてしまいます。

    よろしくお願いいたします。
引用返信 削除キー/
■33780 / inTopicNo.2)  Re[1]: CSVファイルから指定行を1行削除したい
□投稿者/ Azulean 大御所(491回)-(2018/01/15(Mon) 22:39:44)
  • アイコンNo33779に返信(でんさんの記事)
    > 3行目のみ削除したい場合、
    > lines = lines.Skip(3)のように記載すると、
    > 上から3行目までが削除されてしまいます。

    LINQ にこだわるなら、

    lines.Take(2).Concat(lines.Skip(3)).ToArray()

    というように「先頭 2 行」と「3 行飛ばした 4行目から」を連結すれば良いことになります。
引用返信 削除キー/
■33782 / inTopicNo.3)  Re[1]: CSVファイルから指定行を1行削除したい
□投稿者/ 魔界の仮面弁士 大御所(1102回)-(2018/01/16(Tue) 13:56:06)
  • アイコンNo33779に返信(でんさんの記事)
    > 3行目のみ削除したい場合、
    > lines = lines.Skip(3)のように記載すると、
    > 上から3行目までが削除されてしまいます。

    // 3 行目だけを削除する場合
    lines = lines.Where((_, i) => i != 2).ToArray();


    // 3 行目と 6 行目を削除対象とする場合
    // int[] removeLines = { 2, 5 };
    // lines = lines.Where((_, i) => !removeLines.Contains(i)).ToArray();


    ※インデックスは 0 始まりなので、3 行目を指定する場合は「2」を指定します。
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -