C#2.0中的HashSet替换

FIr*_*nda 7 c#-2.0

List<T>在我的项目中使用,此列表包含数百个条目.我使用List.Contains方法相当多,这会伤害性能,我用字典替换了List但是它导致了内存瓶颈,从而使性能更差.是否有更好的解决方案可以建议在List中搜索?是否有替换HashSet<T>C#2.0或其他一些内存和速度更好的方式?

Ter*_*ver 6

A Dictionary<T,bool>可用于代替a HashSet<T>.无论您添加值为True还是False的项目都是掷硬币,该值都不相关.

它比a更麻烦HashSet<T>,而且重量不是很轻,但肯定比a更好List<T>.


jer*_*enh 2

如果您可以接受安装 .Net 3.5 框架的要求,则可以在 2.0 项目中使用 .Net 3.5 (System.Core.dll) 中的 HashSet。

看到这个问题:Using HashSet in C# 2.0,兼容3.5

如果不行的话,我会用字典代替。