问题标签 [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.
c# - C# 字典 ContainsKey/TryGetValue 不起作用
我已经环顾了一段时间,看到很多关于修改GetHashCode()
和玩的参考资料ContainsKey()
和TryGetValue()
- 但所有这些问题和示例都与一些模糊的用户特定键有关。
我有一个基本的Dictionary<long, object>
. 当尝试使用ContainsKey()
orTryGetValue()
时,它并不总是会受到打击(当它应该受到打击时)并继续尝试填充丢失的条目(如果是这种情况,它在技术上应该如此)。
你猜对了:它会抱怨现有的密钥,因为它确实存在。
那么为什么它在匹配基本long
密钥时遇到问题,你如何让它表现?
编辑:代码。我已经尝试了几件事。以最基本的形式:
还:
编辑2:没有发生关键变化。除了在未找到值时添加之外,仅从中读取数据。
get - HashMap - 使用自定义数据对象
假设,我有一个 HashMap:
MyKey 对应于具有两个整数元素的数据对象(以及用于传递两个整数的构造函数)。
但是,我似乎无法使用它:
我弄错了。
HashMap 可以为 Key 提供自定义数据对象吗?我错过了什么?谢谢...
c - 我的 contains 函数有什么问题?
我正在尝试创建一个映射来存储键值对。我写了一个ContainsKey
函数——如果我找到密钥然后返回true
else false
。
我认为我的 EQ 声明有问题,但我不知道问题是什么。有人可以看看我的代码并给我一些指导吗?
这是我的头文件“exer36.h”
源文件“exer36.c”
头文件“exer14.h”
主文件
c# - C#:在键是对象的情况下使用 ContainsKey
好的,所以我需要一些帮助。我有一个通用字典“cashdata”。这个字典的键是对象(查询对象,我定义的一个类)。查询对象具有“Terms”字段,它是一个字符串列表,以及一个“Operator”字段,它是一个枚举(“All”或“Any”)。
并根据 a_query_object 和字典中的对象在术语和运算符方面是否相同而产生真或假。做这个的最好方式是什么?一个哈希码可能吗?我会很感激一个例子,在此先感谢。
编辑: cashdata 字典是这样定义的
java - Java TreeMap 包含一个键,但 containsKey 调用返回 false(即使键是完全相同的未更改对象)
为什么可以循环keySet
TreeMap 并获得一个.containsKey == false
?
经过很多,很多不同的迭代和调用这条线被击中。Amap.get(thisObject)
会返回null
。但调试显示键(相同的引用、值和哈希)和实际值在映射中。地图很小(25 个元素)TreeMap<Long, Double>
更新:
正如@rgettman猜测的那样,在构造 TreeMap 时使用了一种自定义排序Comparator
(没有看到它,因为它是从另一个类构造的)。这个比较器只是(我猜)从这里复制粘贴
改变Comparator
:
至
解决问题。这个问题在数百万次操作之后出现的原因是,没有任何情况下映射具有两个不同键的两个相似值,因为这在上下文中是非常不可能的。
所以在:
它失败。
谢谢你的帮助!
c# - 以不区分大小写的方式检查现有字典中的键
我想检查给我的字典是否包含特定的字符串作为键。我需要以不区分大小写的方式进行此检查。例如,如果有人向我传递了一个 HTTP 请求对象,该对象有一个名为 headers 的字符串字典。我需要能够检查“Content-Type”或“content-type”或“content-Type”是否是 request.headers 字典中的键。
通常ContainsKey()
不起作用,因为我认为它以区分大小写的方式检查密钥。
我也知道存在通过将字典定义为不区分大小写来解决此问题的方法。但是在这里我无法控制传递给我的字典类型。
c# - 字典使用的是自定义键,但键始终不相等
我正在使用 RTBTextPointer 作为字典中的自定义键...
我在类库中编写了这个 RTBTextPointer 和 RTBTextPointerComparer 类,并在不同的 wpf 项目中使用它,
每次 containsKey 都返回 false,即使它包含,所以字典中会出现重复条目..我的“GetHashCode()”有什么问题吗
请帮助我提前谢谢
c# - 字典中不存在给定的 DateTime 键
我是 C# 和编程的初学者。我正在尝试计算一些DateTime
变量。第一个叫dDate
and second dDate1
(的前一天dDate
),third dDate2
(的前一天dDate
,即前一天dDate1
),第四个dDate3
(前的第三天dDate
,即前第二天dDate1
和前一天) ) dDate2
。他们一定不是假期或周末!
我将所有的假期和周末都存储在一个名为nd<DateTime, string>
. 键DateTime
有一系列日期,从2011-01-01
到2013-01-01
,一步一步,值string
是TR
or NT
,一个字符串变量,但不是布尔值。如果是周末或节假日,则字符串为NT
,否则为TR
。
我想做的是什么时候dDate
是周末或假期,减去一天。比如dDate
是2012-01-02
哪个假期,改成dDate
,2012-01-01
因为是周末(周日),改成2011-12-31
,又是周末,dDate
改成2011-12-30
。与dDate1
和dDate2
相同dDate3
。
这里的问题是我的代码适用于dDate
. 但它给出了一个错误:
字典中不存在给定的键
当我为dDate1
,dDate2
或做同样的事情时dDate3
。代码附在下面:
java - hashmap 在调用 containsKey() 时会检查什么?
最初,我希望代码打印出“假”,因为 lis 和 lis2 是不同的对象。令人惊讶的是,代码打印出“真实”。hashmap 在调用 containsKey() 时会检查什么?
java - Java - HashMap.containsKey 返回不正确的对象值
这是我的代码:
我想知道为什么代码原样返回true。但是,当我切换 if 语句(参见注释行)时,它返回 false。
我相信这与覆盖 MyString 类中的 equals 方法有关,但我不确定如何处理这个问题。
问候。