在Web编程环境中,哈希表Vs使用其他数据结构处理Key,Value对的用途是什么

nia*_*ith -3 c# hashtable data-structures

我听说人们使用它们来跟踪会话变量,但我真的想知道它们是否有很多用途,在什么条件下使用哈希表与任何其他可以处理键值对的数据结构都是有益的,比如字典.

例如.我听说过人们将会话值放在哈希表中,然后将哈希表放在Session对象中.我只是想知道那是什么好处.
- 性能更高吗? - 它是否可以防止其他开发人员将同名变量放入会话中?

编辑.

Uma*_*med 11

它就像在建造一个房子时询问锤子的用途......如果你想要它简单然后哈希表只是键/值对,它取决于你在哪里放置你的指甲:)


Dam*_*isa 8

一个难以回答的问题,主要是因为您正在寻找一个问题来匹配解决方案,而不是相反.我会投入两美分.

会话变量实质上存储当前用户会话的信息.它们是通过密钥访问的,因此它们的行为与散列表的行为方式相同.甚至可以将它们(部分地)作为哈希表实现 - 我不知道.

关于会话变量的重要一点是,它们是Web应用程序无状态这一事实的抽象.实际发生的是您将值保存到会话,当您返回页面时,该值将保存在某处(通常在内存或数据库中).下次请求来自该人时,将重新加载该变量.

哈希表主要用于使用查找键快速访问大量对象或值.因为web是无状态的,并且会话仅限于单个用户,所以我看不到哈希表的用处.如果您需要快速访问大型集合中的一段数据,在请求结束时存储整个哈希表并在请求开始时重新加载它以便快速访问项目可能不是一个有效的方法资源的使用.