为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 C# 中的方法在列表中添加数据?我正在尝试添加,但它无法保存数据,只能显示最后一个条目

如何使用 C# 中的方法在列表中添加数据?我正在尝试添加,但它无法保存数据,只能显示最后一个条目

C#
慕码人2483693 2022-12-24 10:05:46
这是我的问题。为了解决我在方法中使用列表,但它只显示最后一个条目。并保持以前的数据。请解决问题 > 有一个图书馆。分别为书籍和图书馆定义类。图书馆必须包含名称和图书清单。书籍必须包含标题、作者、出版商、发行日期和 ISBN 号。在描述图书馆的类中,创建向图书馆添加图书、搜索预定义作者的图书、显示有关图书的信息以及从图书馆删除图书的方法。编写一个测试类,它创建一个类型库的对象,向其中添加几本书并显示每本书的信息。实现一个测试功能,它找到所有由 Stephen King 创作的书籍并删除它们。最后,显示其余每本书的信息。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication310{    class book    {         public string title;         public string author;         public string publisher;         public string releasedate;         public string ISBN;        public void display()         {             Console.WriteLine(title);             Console.WriteLine(author);             Console.WriteLine(publisher);             Console.WriteLine(releasedate);             Console.WriteLine(ISBN);             Console.WriteLine("=======================");         }    }    class liberay : book    {        string libname;        public static List<book> b=new List<book>();        public liberay(string libn)        {            libname = libn;        }        public void addbook(string t, string a, string p, string r, string i)        {            b = new List<book>()            {                new book{title=t,author=a,publisher=p,releasedate=r,ISBN=i}            };        }        public void show()        {            Console.WriteLine(libname);            for (int i = 0; i < b.Count; i++)            {                b[i].display();            }        }    }    class Program    {        static void Main(string[] args)        {            liberay obj = new liberay("name");            obj.addbook("a", "a", "a", "a", "a");            obj.addbook("b", "b", "b", "b", "b");            obj.show();        }    }}
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

试试这个代码


当您调用 addbook 方法时,列表变量被初始化。所以它总是指向最后一个对象。


因此,它只指向您添加的最后一本书。


    public void addbook(string t, string a, string p, string r, string i)

    {


        b = new List<book>()

        {

            new book{title=t,author=a,publisher=p,releasedate=r,ISBN=i}

        };

    }

->


    public void addbook(string t, string a, string p, string r, string i)

    {  

        b.Add(new book { title = t, author = a, publisher = p, releasedate = r, ISBN = i });

    }

删除方法


    public void RemoveBookFromISBN(string targetISBN)

    {

        var target = b.Find((x) => x.ISBN == targetISBN);


        if(target != null)

            b.Remove(target); 

    }


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信