通常,当在列表之间写入比较数据代码时,我使用它来比较字符串或数字
if (list.Contains(searchedvalue)) {
return true;
}
在某些情况下,我的列表最多可以输出数百甚至数千个输出值,并且仅用一个值就可以运行2-3秒。我看到许多破坏性密码程序可以在一秒钟内生成并比较数百万个哈希值和输入值。我该如何加快进度?
答案 0 :(得分:3)
数据结构在这里得到了拯救。在您的情况下,预先构建结构将使进一步查找便宜。 HashSet在这里很有用,例如
var set = new HashSet<T>(list);
// repeat
if(set.Contains(searchedvalue)){
return true
}
对于集合,您还具有集合运算符来比较两组数据(例如,并集,差,交)。这完全取决于您要做什么。