有时我需要检查一组值中的重复 ID,通常我为此使用字典 - 仅使用键并将值留空。
请注意,这是紧凑且高度优化的代码,因此请不要喊“过早优化”!假设 CPU 和 RAM 被挤压到极限的情况下,我想就更优化的解决方案收集意见;大概像 Lookup 类这样的东西会避免不必要的 RAM 分配,因此会稍微快一些。是否有第三方的此类课程,或者我在 BCL 中忽略的某些课程?
我知道谷歌已经发布了快速和紧凑字典类的代码——也许里面有可以移植到 C#/.Net 的东西?
谢谢。
有时我需要检查一组值中的重复 ID,通常我为此使用字典 - 仅使用键并将值留空。
请注意,这是紧凑且高度优化的代码,因此请不要喊“过早优化”!假设 CPU 和 RAM 被挤压到极限的情况下,我想就更优化的解决方案收集意见;大概像 Lookup 类这样的东西会避免不必要的 RAM 分配,因此会稍微快一些。是否有第三方的此类课程,或者我在 BCL 中忽略的某些课程?
我知道谷歌已经发布了快速和紧凑字典类的代码——也许里面有可以移植到 C#/.Net 的东西?
谢谢。
使用 .NET 3.5 中的HashSet 类。
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));
}