这是一个我已经遇到好几次的模式,我已经四处搜寻,但没有就最佳方法达成共识。从父列表中删除对象的最佳做法?
public class ItemListWrapper
{
public List<Item> Contents;
}
public class Item
{
void DoStuffAndRemove() { }
}
当DoStuffAndRemove()被调用时,我想的项目执行某些功能,然后从ItemListWrapper删除。我能想到的两种方法是让ItemListWrapper实现IList(可行,但有点烦人,必须编写所有样板代码),并将委托传递给每个项目以调用,从列表中删除自己(似乎非常复杂) 。
任何帮助表示赞赏。谢谢。
为什么要实施'IList'?您可以在“ItemListWrapper”中只定义一个'Remove'方法,而不必实现整个接口。 – 2013-03-22 17:01:28
旧的'DoStuffAndRemoveFrom(List- listFromWhichTheItemIsToBeRemoved)''怎么了?然后你可以用'myItemListWrapper.Contents'调用它,并删除所有关于该项目被删除的列表的疑问。 –
dasblinkenlight
2013-03-22 17:01:28
队列或堆栈可能比List更合适的数据结构?例如,如果您的应用程序需要FIFO,您只需执行'DoStuff(queue.Dequeue());'。 – 2013-03-22 17:09:01