正在获取distinct的结果(IEqualityComparer comparer)

本文关键字:IEqualityComparer comparer 结果 获取 distinct | 更新日期: 2023-09-27 18:24:16

作为一名LINQ初学者,我想知道为什么在实现IEqualityComparer<T>用于比较任何类(包括匿名类)的任意属性,该查询实际上必须执行才能获得结果。换句话说,只需拨打
IEnumerable<Person> people = ... ; // some database call here var distinctPeople = people.Distinct(new PropertyComparer<Person>("FirstName"));
将不会触发PropertyComparer中特定Equals(Tx, Ty)GetHashCode(T obj)方法的执行。

调试器中的消息"展开结果视图将枚举IEnumerable"给了我提示。现在,我可以继续进行类似foreach (var dp in distinctPeople)的操作来获得结果吗?

正在获取distinct的结果(IEqualityComparer comparer)

这与IEqualityComparer完全无关。它完全基于您提供给Distinct的方法。Distinct和所有返回IEnumerable的LINQ方法都尽可能推迟执行,只在实际需要时执行计算结果所需的工作。

相关文章:
  • 没有找到相关文章