這是一個我已經遇到好幾次的模式,我已經四處搜尋,但沒有就最佳方法達成共識。從父列表中刪除對象的最佳做法?
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