C#2.0中的HashSet替换

时间:2011-05-12 12:12:24

标签: c#-2.0

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

Code Engineering|Live Code Generation

答案 2 :(得分:0)

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

请参阅此问题:Using HashSet in C# 2.0, compatible with 3.5

如果不行,我会改用词典。