问题标签 [containskey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4192 浏览

c# - C# 字典 ContainsKey/TryGetValue 不起作用

我已经环顾了一段时间,看到很多关于修改GetHashCode()和玩的参考资料ContainsKey()TryGetValue()- 但所有这些问题和示例都与一些模糊的用户特定键有关。

我有一个基本的Dictionary<long, object>. 当尝试使用ContainsKey()orTryGetValue()时,它并不总是会受到打击(当它应该受到打击时)并继续尝试填充丢失的条目(如果是这种情况,它在技术上应该如此)。

你猜对了:它会抱怨现有的密钥,因为它确实存在。

那么为什么它在匹配基本long密钥时遇到问题,你如何让它表现?

编辑:代码。我已经尝试了几件事。以最基本的形式:

还:

编辑2:没有发生关键变化。除了在未找到值时添加之外,仅从中读取数据。

0 投票
2 回答
167 浏览

get - HashMap - 使用自定义数据对象

假设,我有一个 HashMap:

MyKey 对应于具有两个整数元素的数据对象(以及用于传递两个整数的构造函数)。

但是,我似乎无法使用它:

我弄错了。

HashMap 可以为 Key 提供自定义数据对象吗?我错过了什么?谢谢...

0 投票
2 回答
178 浏览

c - 我的 contains 函数有什么问题?

我正在尝试创建一个映射来存储键值对。我写了一个ContainsKey函数——如果我找到密钥然后返回trueelse false

我认为我的 EQ 声明有问题,但我不知道问题是什么。有人可以看看我的代码并给我一些指导吗?

这是我的头文件“exer36.h”

源文件“exer36.c”

头文件“exer14.h”

主文件

0 投票
1 回答
1210 浏览

c# - C#:在键是对象的情况下使用 ContainsKey

好的,所以我需要一些帮助。我有一个通用字典“cashdata”。这个字典的键是对象(查询对象,我定义的一个类)。查询对象具有“Terms”字段,它是一个字符串列表,以及一个“Operator”字段,它是一个枚举(“All”或“Any”)。

并根据 a_query_object 和字典中的对象在术语和运算符方面是否相同而产生真或假。做这个的最好方式是什么?一个哈希码可能吗?我会很感激一个例子,在此先感谢。

编辑: cashdata 字典是这样定义的

0 投票
3 回答
5954 浏览

java - Java TreeMap 包含一个键,但 containsKey 调用返回 false(即使键是完全相同的未更改对象)

为什么可以循环keySetTreeMap 并获得一个.containsKey == false

经过很多,很多不同的迭代和调用这条线被击中。Amap.get(thisObject)会返回null。但调试显示键(相同的引用、值和哈希)和实际值在映射中。地图很小(25 个元素)TreeMap<Long, Double>

更新:

正如@rgettman猜测的那样,在构造 TreeMap 时使用了一种自定义排序Comparator(没有看到它,因为它是从另一个类构造的)。这个比较器只是(我猜)从这里复制粘贴

改变Comparator

解决问题。这个问题在数百万次操作之后出现的原因是,没有任何情况下映射具有两个不同键的两个相似值,因为这在上下文中是非常不可能的。

所以在:

它失败。

谢谢你的帮助!

0 投票
1 回答
976 浏览

c# - 以不区分大小写的方式检查现有字典中的键

我想检查给我的字典是否包含特定的字符串作为键。我需要以不区分大小写的方式进行此检查。例如,如果有人向我传递了一个 HTTP 请求对象,该对象有一个名为 headers 的字符串字典。我需要能够检查“Content-Type”或“content-type”或“content-Type”是否是 request.headers 字典中的键。

通常ContainsKey()不起作用,因为我认为它以区分大小写的方式检查密钥。

我也知道存在通过将字典定义为不区分大小写来解决此问题的方法。但是在这里我无法控制传递给我的字典类型。

0 投票
2 回答
133 浏览

c# - 字典使用的是自定义键,但键始终不相等

我正在使用 RTBTextPointer 作为字典中的自定义键...

我在类库中编写了这个 RTBTextPointer 和 RTBTextPointerComparer 类,并在不同的 wpf 项目中使用它,

每次 containsKey 都返回 false,即使它包含,所以字典中会出现重复条目​​..我的“GetHashCode()”有什么问题吗

请帮助我提前谢谢

0 投票
1 回答
1736 浏览

c# - 字典中不存在给定的 DateTime 键

我是 C# 和编程的初学者。我正在尝试计算一些DateTime变量。第一个叫dDateand second dDate1(的前一天dDate),third dDate2(的前一天dDate,即前一天dDate1),第四个dDate3(前的第三天dDate,即前第二天dDate1和前一天) ) dDate2。他们一定不是假期或周末!

我将所有的假期和周末都存储在一个名为nd<DateTime, string>. 键DateTime有一系列日期,从2011-01-012013-01-01,一步一步,值stringTRor NT,一个字符串变量,但不是布尔值。如果是周末或节假日,则字符串为NT,否则为TR

我想做的是什么时候dDate是周末或假期,减去一天。比如dDate2012-01-02哪个假期,改成dDate2012-01-01因为是周末(周日),改成2011-12-31,又是周末,dDate改成2011-12-30。与dDate1dDate2相同dDate3

这里的问题是我的代码适用于dDate. 但它给出了一个错误:

字典中不存在给定的键

当我为dDate1,dDate2或做同样的事情时dDate3。代码附在下面:

0 投票
4 回答
3899 浏览

java - hashmap 在调用 containsKey() 时会检查什么?

最初,我希望代码打印出“假”,因为 lis 和 lis2 是不同的对象。令人惊讶的是,代码打印出“真实”。hashmap 在调用 containsKey() 时会检查什么?

0 投票
3 回答
2693 浏览

java - Java - HashMap.containsKey 返回不正确的对象值

这是我的代码:

我想知道为什么代码原样返回true。但是,当我切换 if 语句(参见注释行)时,它返回 false。

我相信这与覆盖 MyString 类中的 equals 方法有关,但我不确定如何处理这个问题。

问候。