Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我试图写入一个列表时,我先前在其中的文本会被覆盖_C#_Linq - Fatal编程技术网

C# 当我试图写入一个列表时,我先前在其中的文本会被覆盖

C# 当我试图写入一个列表时,我先前在其中的文本会被覆盖,c#,linq,C#,Linq,(Books类是在此代码之外定义的。)因此,当我试图从这个文件中读取一本书时,我只得到这本书。每次我添加一个新的,旧的就会被重写。因此,我无法将新书添加到myLibraryBooks列表中,因为它会自动被覆盖 Books book = new Books(); Console.Write("Enter Author Name:"); book.Author = Console.ReadLine(); Console.Write("Enter Book Title:"); book.Title

(Books类是在此代码之外定义的。)因此,当我试图从这个文件中读取一本书时,我只得到这本书。每次我添加一个新的,旧的就会被重写。因此,我无法将新书添加到myLibraryBooks列表中,因为它会自动被覆盖

Books book = new Books();

Console.Write("Enter Author Name:");
book.Author = Console.ReadLine();

Console.Write("Enter Book Title:");
book.Title = Console.ReadLine();

Console.Write("Enter Book ISBN:");
book.ISBN = Console.ReadLine();

Console.Write("Enter the Publish Date:");
book.Publish_Date = Console.ReadLine();

myLibraryBooks.Add(new Books() { Author = book.Author.ToUpper(), Title = book.Title.ToUpper(), ISBN = book.ISBN, Publish_Date = book.Publish_Date.ToUpper() });
Console.WriteLine("Book added Successfully");
sw.Write(book.Author, FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.Title.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.ISBN.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.Write(book.Publish_Date.ToUpper(), FILE_PATH);
sw.Write("\r\n", FILE_PATH);
sw.WriteLine(book.Author, FILE_PATH);
sw.Close();

我在这里假设了很多,但我想试着给出一个答案

如果
sw
是StreamWriter(我看不出在哪里声明),那么您应该使用

using(StreamWriter sw = new StreamWriter("yourFile", true))
强制StreamWriter附加到当前数据而不覆盖它

另外,
sw.Write
调用也是错误的。您使用的重载接受格式字符串和要插入格式字符串中的对象。相反,你只是在写书的属性

你应该使用

sw.WriteLine(book.Author);

将每个属性分别放在一行上,而不是粘在一行上。

我在这里假设了很多,但我想尝试给出一个答案

如果
sw
是StreamWriter(我看不出在哪里声明),那么您应该使用

using(StreamWriter sw = new StreamWriter("yourFile", true))
强制StreamWriter附加到当前数据而不覆盖它

另外,
sw.Write
调用也是错误的。您使用的重载接受格式字符串和要插入格式字符串中的对象。相反,你只是在写书的属性

你应该使用

sw.WriteLine(book.Author);

将每个属性放在单独的一行上,而不是粘在一行上。

您在代码中看到了什么问题?您是说,
foreach
只出现一次,您希望它出现多次吗?不,当我尝试将一本书添加到我的文件时,它会覆盖当前在其中的一本。您能否显示声明和
sw
的打开?这里缺少一些东西。@Steve在此代码之外定义。但是它被声明为StreamWriter?您在代码中看到了什么问题?您是说,
foreach
只出现一次,您希望它出现多次吗?不,当我尝试将一本书添加到我的文件时,它会覆盖当前在其中的一本。您能否显示声明和
sw
的打开?这里缺少了一些东西。@Steve在此代码之外定义。但是它被声明为StreamWriter?+1,因为它没有OP发布代码,甚至没有明确的问题-1至OP未阅读文档并提供错误示例代码………+1,用于在OP未发布代码或甚至未提出明确问题的情况下查看-1至OP未阅读文档并提供错误示例代码。。。。。。。。。。