Object.Equals
переопределяется для анонимных классов, поэтому вы можете просто использовать Enumerable.Distinct
:
var temp = (from blobID in blobIds
join blob in blobs on blobID.Value.HashKey equals blob.HashKey
select new {
blobID.Key,
Binder = Load(blob)
}
).Distinct()
.ToDictionary(arg => arg.Key, arg => arg.Binder);
Здесь Distinct
будет использовать Default
средство сравнения равенства для анонимного класса. Default
средство сравнения равенства для анонимного класса использует Object.Equals
, которое переопределяется, чтобы возвращать значение true, если все свойства равны.