I read in a few places that LINQ equals (in join syntax) calls IEquatable for the type it's comparing, but I don't see it happening in my join:
List<ILData> list1 = new List<ILData> { /* Initialized with items */ };
List<ILData> list2 = new List<ILData> { /* Initialized with items */ };
var joinItems = (
from d1 in list1
join d2 in list2
on d1 equals d2
where d1.SomeValue == "7"
select d1).Distinct().ToList<ILData>();
Assuming I provided an interface definition satisfying:
ILData : IEquatable<ILData>
requirements, why wouldn't I be seeing ILData::Equals get called in this case?