我想自己写一个List
。所以我有一节课List
和一节课ListItem
。我现在想做的是创建区分类,例如class car
。我想car
从类ListItem推断出该类,以便可以创建List
汽车。现在,类List
将具有不同的方法,就像一个C#给您的那样。我写了一个Add和一个Count方法,两者都起作用。棘手的部分到了……我想写一个Funktion来在列表中查找项目。问题是我不能仅仅因为1而比较它们。我不知道Objekt的外观和成员。2.我不想比较ListItem类的特征,因为它们与真实的Object不相关,它们仅与List相关。
我的想法是,为每个对象创建一个列表类,因此在我的示例中,carList
它是从列表类推导的。这样,我可以编写一个Methode,它知道要比较什么,因为它知道ListItem对象。现在,我不想为每个我想要列表的对象创建一个列表类。sice c#还必须以其他方式为您提供相同的列表类。有人可以帮忙吗?
您应该在-class上覆盖Equals
(继承自object
)Car
:
class car
{
public override bool Equals(object other) {
var o = other as car;
if ( o == null ) return false;
if this.myProperty = o.myProperty return true;
return false;
}
}
然后,列表将使用这种倾向性来检测两辆汽车是否相等。Find
现在,您可以在-method内简单地调用列表中的所有项目(如果它等于搜索到的项目):
if (currentItemInList.Equals(searchItem)) // ...
编辑:Equals
为任何类实施时,您也应该始终实施GetHashCode
,以防您的类的对象存储在诸如的散列容器中Dictionary<TKey,TValue>
。如果您想进一步阅读,请参见MSDN中的GetHashCode和Equals。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句