【发布时间】:2013-03-19 22:19:53
【问题描述】:
public class ItemCollection
{
List<AbstractItem> LibCollection;
public ItemCollection()
{
LibCollection = new List<AbstractItem>();
}
public List<AbstractItem> ListForSearch()
{
return LibCollection;
}
在另一堂课上我写了这个:
public class Logic
{
ItemCollection ITC;
List<AbstractItem> List;
public Logic()
{
ITC = new ItemCollection();
List = ITC.ListForSearch();
}
public List<AbstractItem> search(string TheBookYouLookingFor)
{
foreach (var item in List)
{
//some code..
}
并且 foreach 中的列表不包含任何内容 我需要为搜索方法处理这个列表(这个列表应该与 libcollection 的内容相同)
【问题讨论】:
-
据我所知,
List(btw 的名字很可怕)是与ItemCollection.LibCollection相同的引用。 -
定义“不包含任何内容”。是
null吗?还是它被实例化并且只是空的?在后一种情况下,我看不到您在列表中实际添加任何内容的位置... -
Item Collection 变得没用了,你用它来封装列表,然后你暴露列表!您要么需要将搜索功能移动到 ItemCollection,要么摆脱项目集合。