从集合类中移除项
本文关键字:集合类 | 更新日期: 2023-09-27 18:03:46
我有一个藏书课。我有一个删除方法,我想使用,那是在我添加的书籍。这是我的书:
myList<Book> lst = new myList<Book>();
lst.addItem(new Book("Dumas", "Alexandre", "The Count Of Monte Cristo", 1844));
lst.addItem(new Book ("Clark", "Arthur C", "Rendezvous with Rama", 1972 ));
lst.addItem(new Book("Dumas", "Alexandre", "The Three Musketeers", 1844)); ;
lst.addItem((new Book ("Defoe", "Daniel", "Robinson Cruise", 1719)));
lst.addItem(new Book ("Clark", "Arthur C", "2001: A space Odyssey", 1968 ));
我的remove方法是这样的:
public void removeItem(T item)
{
Array.Resize(ref items, items.Count() -2);
}
例如,如果我想从列表中删除第一本书,我试着这样做:
lst.removeItem(0);
但是我得到一个错误说"没有重载方法'removeItem'需要0个参数"
我做错了什么?
但是我得到一个错误说"没有重载方法'removeItem'"接受0个参数"
我做错了什么?
public void removeItem(T item) // <-- code within brackets is the "overload"
{
Array.Resize(ref items, items.Count() -2);
}
由于您为方法创建的构造函数只接受一个参数,因此您只能通过向该方法传递单个参数来利用该方法。
如果它接受"0个参数",它将需要一个像这样的构造函数:
public void RemoveItem()
{
// your code here
}
然而,当你需要至少一个参数传递给你的方法时,这并不能解决你的问题。
要接收错误"No overload for method 'removeItem' takes 0个参数",你必须像这样调用removeItem
:
RemoveItem();
所以我建议按CTRL+F并搜索RemoveItem();
以找到它在项目中的位置。
这个方法接受一个类型为"T"的参数removeItem(T item)
所以你应该收到一个错误(无法转换为类型)消息,因为你正在传递一个整数0
到一个不接受整数的方法,它接受你的"T"类型。
正如许多人已经在评论中指出的那样,您应该使用。net提供的List类来实现这一点。当微软已经创造并调整好它时,重新发明轮子没有意义。
一个额外的提示,虽然这不会影响你的代码,但是命名方法的标准是Pascal Case。所以你应该把它命名为RemoveItem
而不是removeItem