Checking to make sure the two lists are equal does not mean checking whether they both contain the same elements.
If you do this:
var a = new List<OrderRule>();
var b = new List<OrderRule>();
var r = a.Equals(b);
r , . , . , a b . a - , b - .
, r :
var a = new List<OrderRule>();
var b = a;
var r = a.Equals(b)
, , , :
var r = a.SequenceEquals(b);
r true, Equals OrderRule, "" .
- OrderRule .
public override Boolean Equals(Object obj) {
if (ReferenceEquals(null, obj))
return false;
if (ReferenceEquals(this, obj))
return true;
if (obj.GetType() != GetType())
return false;
return Equals(obj as IncludeRule);
}
, return Equals(obj as IncludeRule) return Equals(obj as OrderRule).