0

リストをファイルに書き込んでいます。リストは、入力したテキストからフォームアプリからデータを取得します。これは機能しますが、フォームを保存して新しいデータを追加するのではなく、フォームを開始するたびにファイルを上書きします。解決策としてこれに「AppendAllLines」または「WriteAllLines」を追加するにはどうすればよいですか?

     public List<String> listDeliveries()
    {
        List<String> listDeliveries = new List<string>();           
        using (StreamWriter writer = new StreamWriter("Database.txt"))
        {
            foreach (Delivery del in deliveries)
            {
                String delAsString = del.summary();                   

                listDeliveries.Add(delAsString);

                writer.WriteLine(delAsString);                   
            }

        }
        return listDeliveries;

    }
4

6 に答える 6

2
var listDeliveries = deliveries.Select(d=>d.summary()).ToList();
File.AppendAllLines("Database.txt", listDeliveries);
return listDeliveries;
于 2012-11-30T16:25:38.530 に答える
1

解決策としてこれに「AppendAllLines」または「WriteAllLines」を追加するにはどうすればよいですか?

それはあなたがただ欲しいように見えます:

List<String> listDeliveries = deliveries.Select(x => x.summary()).ToList();
File.AppendAllLines("Database.txt", listDeliveries);
return listDeliveries;

(はい、2 番目の引数としてを作成できますが、より単純です...)StreamWritertrueAppendAllLines

于 2012-11-30T16:25:09.940 に答える
1

ToListリストを作成し、リストFile.AppendAllLinesから行を追加するために使用できます。

List<string> listDeliveries = deliveries.Select(d => d.summary())
                                        .ToList();
File.AppendAllLines("Database.txt", listDeliveries);
于 2012-11-30T16:26:24.000 に答える
0

使用できます

using (StreamWriter writer = new StreamWriter("Database.txt", true))

上書きではなく追加

于 2012-11-30T16:25:01.713 に答える
0

追加するかどうかを指定できるオーバーロードされたコンストラクターを使用します。デフォルトはfalse

StreamWriter writer = new StreamWriter("Database.txt", true)
于 2012-11-30T16:25:19.860 に答える
0

StreamWriter を作成するときは、上書きではなくファイルにデータを追加するように指示するブール値を渡します。

    using (StreamWriter writer = new StreamWriter("Database.txt", true))
于 2012-11-30T16:26:19.083 に答える