为什么我们需要 IEqualityComparer,IEqualityComparer 接口?

2024-03-31

'Equal' 和 'GetHashcode' 方法存在于对象类中,并且我们的类型继承了对象基类。 直接实现对象的两个方法和使用IComparer接口有什么区别?

如果我们覆盖对象的 Equal 和 GetHashCode ,并推送到哈希表,它将使用覆盖的 equal 方法?

new 哈希表与 IEqualityComparer 构造函数有什么区别?


The IComparable当您需要能够“排序”对象时使用接口,它为您提供了一个方法(CompareTo) 告诉您两个对象是否是 。使用的构造函数IEqualityComparer让你给出具体的Equals/GetHashCode这可能与您的对象定义的不同。通常情况下Hashtable将使用您覆盖的对象Equals and GetHashCode(或基object Equals and GetHashCode).

举个例子,标准字符串以区分大小写的方式进行比较("A" != "a"),但你可以做一个IEqualityComparer帮助器类能够以不区分大小写的方式对字符串进行哈希处理。 (从技术上讲,这个类已经存在于多个变体中:它们被称为StringComparer.InvariantCultureIgnoreCase以及所有其他静态方法StringComparer返回一个StringComparer实现的对象IComparer, IEqualityComparer, IComparer<string>, IEqualityComparer<string>)

作为注释,Hashtable uses a IEqualityComparer可选参数,不是通用版本IEqualityComparer<T>, 因为Hashtable是预泛型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我们需要 IEqualityComparer,IEqualityComparer 接口? 的相关文章

  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • 如何让 LinqToSql 将“索引提示”传递给 sql server?

    由于我们不能相信我们的客户会更新 sql server 中的索引统计信息等 因此我们过去不得不使用索引提示 http www sql server performance com tips hints general p1 aspx 由于我
  • Sitecore - 隐藏功能区中的按钮

    我为特定内容项创建了上下文功能区 我有两个按钮 可以将项目 升级 或 降级 到某一类别 该部分只能有一个 是否可以根据某种隐藏代码中的内容状态隐藏其中一个按钮 我了解如何链接到 Click 事件 但我想知道是否有某种加载事件可供自定义功能区
  • 在 .Net 托管的 IronPython 脚本中设置和获取变量

    我正在尝试使用 Net 控制台应用程序中托管的 IronPython 来构建验证规则引擎的原型 我已经将脚本精简到我认为的基础内容 var engine Python CreateEngine engine Execute from Sys
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • CompileAssemblyFromDom 抛出访问被拒绝异常

    代码 using var codeProvider new CSharpCodeProvider var compilerParameter new CompilerParameters assemblies assemblyName fa
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何根据给定的点生成热图

    我想生成 Windows 形式的热图 我有一组点作为输入 如何以最简单的方式做到这一点 谢谢 基于此处已有的答案 此方法允许您指定Colors您希望用作最大和最小颜色 private Color HeatMapColor double va
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • 家庭自动化图书馆[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 C 开发人员 希望将家庭自动化作为一种 爱好 我做了一些研究 但想知道是否有人知道支持 In
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • C# 和匿名对象数组

    这样的表达是什么意思呢 obj DataSource new new Text Silverlight Count 10 Link Tags Silverlight new Text IIS 7 Count 11 Link http iis
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • 是否可以在 IIS7 Express 中使用自定义主机标头/绑定?

    我正在尝试配置一个新的ASP NET MVC3 using IIS7快递 在我的本地开发机器上 使用自定义域名 eg 我的本地开发机器 打开我的网络浏览器 goto http dev www mydomain com http dev ww
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我

随机推荐

  • /usr/lib/vendor_ruby 的用途是什么

    我一直在解决 CANVAS LMS 的一个问题 其中 usr lib vendor ruby 中似乎存在 ruby 的过时版本 当我删除 usr lib vendor ruby rails 和 usr lib vendor ruby rai
  • 如何使用 VB 将数据库表中的下拉列表数据绑定到 gridview 中?

    因此 在这个网格视图中 有一个状态列 我希望在单击编辑按钮时出现一个包含 通过 待处理 失败 的下拉列表 这些值已经在表中 因此我需要以某种方式从该表绑定到每一行的每个 ddl 这是网格视图中的列 正如你所看到的 我只想在不处于编辑模式时显
  • 在 Java 7 Update 45 中,不再通过 JNLP 标签“属性”设置系统属性

    我们从附加的 JNLP 运行该应用程序 在 Java 控制台上 我们已使用 D 输出系统属性 JNLP 文件中的属性不再设置 这是我们遇到此类问题的第一个 Java 版本 在 7 Update 40 之前一切都运行良好 我们已对所有 jar
  • 实时搜索:用户输入完毕后开始搜索

    在我的应用程序中 当用户在文本字段中键入内容时 我正在搜索结果 我正在使用 Provider 其中有一个 searchProduct 函数 每次用户在文本字段中键入内容时都会触发该函数 获取结果后 我将调用 notificationList
  • 使用片段的Android功能区菜单

    我使用水平滚动视图对功能区菜单进行了编码 我的代码如下 public class HorzScrollWithListMenuActivity extends Activity MyHorizontalScrollView scrollVi
  • JQuery Mobile 加载更多选项

    知道如何在 JQueryMobile 中实现加载更多选项 在我的应用程序中 我需要提取大量数据 并希望加载前 20 条数据 并让用户通过单击 Listview 最后一行上的 加载更多 数据选项来加载更多数据 这应该有效 loadmore l
  • Oracle Tuxedo 的节省成本替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Oracle Tuxedo 中间件平台有哪些节省成本的替代方案 可以将现有代码库迁移到该平台 很少有开源
  • Access/SQL Server 2008 使用 Like 加入不起作用

    我提前道歉 因为这个问题在这个网站上多次以各种形式出现 但我尝试实施的解决方案似乎都无法正常工作 而且我找不到可以得到正确答案的已回答问题 我正在为一位同事从事 Access 工作 不过一旦他能够设置服务器 将来可能会使用 SQL 我正在尝
  • elm 中的“<<”运算符是什么意思?

    以下代码取自榆树形式示例 http elm lang org edit examples Intermediate Form elm 第 122 行 什么是 lt lt 运算符的意思是 Field field Field defaultSt
  • EaselJS:单击鼠标更改形状填充颜色

    我在使用 EaselJS 时遇到了困难 基本上我想创建一个简单的网格并突出显示所选的实际元素 var stageWidth 800 stageHeight 600 cell size 50 w 16 h 12 n w h canvas st
  • 为什么 ViewPager2 延迟加载页面? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我决定尝试一下现在可用的新稳定版本ViewPager2 My ViewPager2有很多页面 我正在使用TabLayout为每个页面 片段 提供
  • 单击即可在 FullCalendar 中添加事件

    我正在尝试在 NET 中的日历单元格单击上添加事件 如下所示 http arshaw com js fullcalendar 1 5 3 demos selectable html http arshaw com js fullcalend
  • 如何在 C# 中使用 TaskScheduler 设置“仅在登录时运行”和“运行方式”?

    我有使用 C TaskManager 对象创建任务的代码 在 Windows 7 上它工作正常 但在 Windows XP 可能还有其他 Windows 上它根本不起作用 因为任务的默认用户是系统 因此没有用于显示 GUI 的会话 如果我在
  • 从 DOM 中删除元素并将它们添加回原来的位置

    我有一个模态窗口 我想要发生的事情是在模式打开时从页面中删除某些元素 并在模式关闭后将它们添加回原来的位置 我不想显示 无 因为这只会隐藏它们 我需要将它们实际从页面中删除 所以我有一些 jQuery 需要删除并在计时器之后将它们添加回来
  • PHP 的 shuffle 函数有多随机?

    有谁知道PHP的随机性是什么shuffle 功能 它取决于操作系统吗 它使用 PHP 自己的播种器吗 是否可以使用mt rand 作为发电机 shuffle 函数基于相同的生成器rand 这是基于的系统生成器线性同余算法 http en w
  • 使用“Lazy Eager Loading”返回关系中的第一个元素 [Laravel 5.2]

    我有这样的关系 public function message return this gt hasMany Engine Message 在我的里面Conversation model 对于每次对话 我都需要获取最后一条消息 这是我尝试过
  • 自动为所有可能的线性模型创建公式

    假设我在数据框中有一个训练集train有柱子ColA ColB ColC等 这些列之一指定一个二进制类 例如列Class 具有 是 或 否 值 我正在尝试一些二元分类器 例如 library klaR mynb lt NaiveBayes
  • Xcode 9 - CPU 使用率高 - 风扇最大速度

    自从我升级到 Xcode 9 后 当我在 Xcode 上工作时 我的粉丝就变得疯狂了 当我使用 Storyboards 和 Interface Builder 时 尤其会发生这种情况 Xcode有时会占用100 的CPU 并且名为 Inte
  • Weifenluo Dock Panel Suite:浮动窗口使用其设计尺寸?

    如何使用 Weifenluo Dockpanel 套件使浮动窗口使用其设计尺寸 而不是 Dock Panel 套件的默认尺寸 提示 我尝试了 SF net 上 Dock Panel Suite 论坛的建议 但这似乎不起作用 我自己寻找答案时
  • 为什么我们需要 IEqualityComparer,IEqualityComparer 接口?

    Equal 和 GetHashcode 方法存在于对象类中 并且我们的类型继承了对象基类 直接实现对象的两个方法和使用IComparer接口有什么区别 如果我们覆盖对象的 Equal 和 GetHashCode 并推送到哈希表 它将使用覆盖