c#我有列表<对象>随着对象值内部改变,现在我想删除
本文关键字:对象 改变 删除 内部 列表 | 更新日期: 2023-09-27 17:50:35
c#中我有一个内部改变了对象值的列表,现在我想删除这个对象,我的意思是
class Strength {
public int energy;
public Strength(int energy) {
this.energy = energy;
}
public void increment(){
this.energy++;
}
}
List<Strength> strengthList = new List<Strength>();
Strength strength = new Strength(10);
strengthList.Add(strength);
strength.increment();
strengthList.Remove(strength);
它会从强度列表中删除对象强度吗?
感谢大家提前提供的帮助
你想知道的是c#如何处理对象的相等性。
在你的例子中,它将删除这个对象,因为它们有相同的引用。你也可以在你的类中重写这个行为,这样它就可以比较这个类的值。
添加:List。Remove使用EqualityComparer.Default。如果object实现它,它将使用IEquatable,或者返回到标准对象。