什么是最有效的数据结构来存储需要在.Net中查找的整数列表?

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)

每当他们玩新拼图时,我都会将记录保存到数据库并将其附加到会话中存储的列表中.

谢谢!

dri*_*iis 5

这取决于你如何查询它们,但需要一个简单的数组,或者HashSet<int>想到它.

当你索引它们时,两者都是O(1).HashSet.Contains也是O(1).

回答您对该问题的评论:使用HashSet,因为您需要检查是否存在指定的整数.您应该在HashSet上使用Contains()来执行此操作; 它会给你最好的表现.如果您需要存储与该值相关的其他一些值,可能使用Dictionary.