C#我有List在内部更改了对象值,现在我想删除该对象我的意思是
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);
它会从strengthList中删除对象强度吗?
感谢您提前获得所有帮助
答案 0 :(得分:1)
您想知道的是C#如何处理equality个对象。
在您的情况下,它将删除此对象,因为它们具有相同的引用。您也可以在类中覆盖此行为,因此它可以比较此类的值。
要添加:List.Remove使用EqualityComparer.Default。如果对象实现它,它将使用IEquatable,或者将回退到标准Object.Equals和Object.GetHashCode。