C#我有List <object>,内部更改了对象值,现在我想删除</object>

时间:2011-04-17 09:42:06

标签: c# list add

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中删除对象强度吗?

感谢您提前获得所有帮助

1 个答案:

答案 0 :(得分:1)

您想知道的是C#如何处理equality个对象。

在您的情况下,它将删除此对象,因为它们具有相同的引用。您也可以在类中覆盖此行为,因此它可以比较此类的值。

要添加:List.Remove使用EqualityComparer.Default。如果对象实现它,它将使用IEquatable,或者将回退到标准Object.EqualsObject.GetHashCode