Пишем код:
class A
{
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
public A( int var)
{
myVar = var;
}
public override bool Equals(object obj)
{
A instance = obj as A;
return instance !=null?instance.MyProperty == this.MyProperty:false;
}
}
class Program
{
static void Main(string[] args)
{
List<A> ACollection = new List<A>();
A A1 = new A(1);
ACollection.Add(A1);
ACollection.Add(new A(2));
ACollection.Add(new A(3));
A A2 = new A(1);
ACollection.Add(A2);
ACollection.Remove(A2);
}
}
После выполнения ожидается что в результирующея коллекция будет иметь вид:
A(1)
A(2)
A(3)
НО НА САМОМ ДЕЛЕ ОНА ИМЕЕТ ВИД:
A(2)
A(3)
A(1)
![](/Forum/Images/crash.gif)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>