如何使用修饰键状态成功散列 System.Windows.Input.Key 值?
我正在尝试编写一个哈希算法,该算法将成功地使用修饰符键状态对 System.Windows.Input.Key 值进行哈希处理,例如:
ctrl = false
shift = true
alt = false
capslock = true
numlock = false
scroll lock = false
key: A
因此,像这样的键值应该与具有不同状态的其他键值分开,例如 ctrl、shift、alt 等但由于这些只是 true 或 false,我不确定如何区分哈希值?
有什么想法吗?它必须足够独特才能处理所有可能的按键组合。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将构建一个包含能够计算其自己的哈希码的所有值的类,例如:
归功于 Jon Skeet 对
GetHashCode()
实现的回答。NB
这个类可以有效地用作
Dictionary
键,用于HashSet
或 LINQDistinct()
等LINQ 设置的操作。编辑:
我想强制执行这样一个事实:您不得使用哈希码作为字典键,而应使用整个类。
您不能依赖哈希代码的唯一性,因为哈希它受到冲突。
I would build a class containing all values able to compute it's own hash code, like:
Credits to this Jon Skeet's answer for the
GetHashCode()
implementation.N.B.
this class can be effectively used as a
Dictionary
key, intoHashSet
or in LINQDistinct()
and other LINQ sets' operations.EDIT:
I'd like to enforce the fact that you mustn't use the hash code as dictionary key, but use the whole class instead.
You cannot rely on the uniqueness of the hash-codes because hashing it's subjected to collisions.