Vis*_*and 7 c# linq linq-to-entities
我在LINQ中经历了GroupBy方法:
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
IEqualityComparer<TKey> comparer
)
Run Code Online (Sandbox Code Playgroud)
我理解如何使用GroupBy以及它返回的内容.我想了解IEqualityComparer<TKey> comparerGroupBy中实际使用的含义和含义.
D S*_*ley 11
该IEqualityComparer<TKey>对象将用于执行两步检查以查看TKey实例是否与现有组的键"相等",因此应该在该组中:
GetHashCode根据现有密钥的哈希码检查项目的哈希码(使用).如果它不等于任何这些值,则将其添加到新组中Equals).如果项目"等于"组密钥,则该项目将添加到该组.如果您还没有提供一个比较器(无论是通过传递null或使用不具有该参数的重载之一),该"deafult"比较器使用,它使用了TKey类本身是否实现IEquatable或任何适用的覆盖Equals和GetHashCode.
所以这意味着Equals和之间的一些关键关系GetHashCode:
| 归档时间: |
|
| 查看次数: |
4858 次 |
| 最近记录: |