偶尔我需要在一组值中检查重复的ID,通常我会使用一个字典 - 仅使用键并将值留空。
请注意,这是严格且高度优化的代码,因此请不要“过早优化”!假设CPU和RAM被挤压到极限的情况,我想收集关于更优化解决方案的意见;大概类似于Lookup类会避免不必要的RAM分配,因此会稍快一些。是否有这样的课程要么是第三方,要么是我在BCL中忽略的一些课程?
据我所知google已经发布了快速和紧凑字典类的代码 - 也许那里有一些东西可以移植到C#/ .Net?
感谢。
答案 0 :(得分:6)
使用.NET 3.5中的HashSet class。
HashSet<int> set = new HashSet<int>() { 1, 2, 3 };
set.Add(5);
for (int index = 0; index < 10; index++)
{
Console.WriteLine("{0} : {1}", index, set.Contains(index));
}