Mic*_*cah 3 collections .net-4.0 data-structures
我需要一个有效的数据结构来存储整数列表.列表中的数量范围可以从1到可能不超过1000.每个请求将查询该列表大约20次.什么是最有效的收藏类型来存储这些?
UPDATE
为了更多地了解一下,我们将把www.wikipediamaze.com(我写的一个小游戏)作为一个例子(不是真实场景,但足够接近对话).对于任何给定页面上的谜题列表,我目前正在从拼图表中返回一个列表,该列表连接到存储当前用户所玩的谜题的表格.相反,我想缓存与用户无关的谜题列表.所以我要做的是首先从数据库加载和缓存谜题列表.然后我加载并缓存用户玩过的谜题列表.然后当我迭代拼图显示它们时,我想这样做:
protected BestDataStructure<long> PlayedPuzzles {get; set;} //Loaded from session
protected bool HasBeenPlayed(long puzzleId)
{
return PlayedPuzzles.Contains(puzzleId)
}
Run Code Online (Sandbox Code Playgroud)
每当他们玩新拼图时,我都会将记录保存到数据库并将其附加到会话中存储的列表中.
谢谢!
这取决于你如何查询它们,但需要一个简单的数组,或者HashSet<int>想到它.
当你索引它们时,两者都是O(1).HashSet.Contains也是O(1).
回答您对该问题的评论:使用HashSet,因为您需要检查是否存在指定的整数.您应该在HashSet上使用Contains()来执行此操作; 它会给你最好的表现.如果您需要存储与该值相关的其他一些值,可能使用Dictionary.
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |