C# the general HashSet<T>search exercise should be O(1), and the search exercise of an ObservableCollection<T> should be O(n).
我有许多独特的内容,每个要素都有一个并非独一无二的日间财产。
每一要素仅收回其日期即可计算其哈希姆。 GetHashCode().
现在我想得到我的一组数据,例如,在2012年3月至2012年6月期间有日期的所有要素。
var result = from p in this.Elements
where p.Date >= new DateTime(2012, 03, 01) &&
p.Date <= new DateTime(2012, 30, 06
select p;
If I run this LINQ query on a collection of 300.000 elements, it takes ~25 ms to return 80 elements that are within the given range - it does not matter if I use a HashSet<T> or an ObservableCollection<T>.
如果我通过所有内容进行人工检查,同时需要大约25个。
但是,我确实知道在一定范围内的所有日期的哈希姆。 能否从我的哈希特和提尔获得所有与上述哈希科德的物品? 我认为,这将大大加快。
是否有可能加速处理准则问题? 我假定,它没有利用我的哈希特和德特的特殊能力?