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#我有列表<对象>随着对象值内部改变,现在我想删除

你想知道的是c#如何处理对象的相等性。

在你的例子中,它将删除这个对象,因为它们有相同的引用。你也可以在你的类中重写这个行为,这样它就可以比较这个类的值。

添加:List。Remove使用EqualityComparer.Default。如果object实现它,它将使用IEquatable,或者返回到标准对象。