通常,当在列表之间编写比较数据代码时,我使用它来比较字符串或数字。
if (list.Contains(searchedvalue)) {
return true;
}在某些情况下,我的列表有多达几百甚至是thoundands的输出值&仅用一个值就运行它需要2-3秒。我看到很多破解密码程序可以在一秒钟内生成和比较数百万的哈希值和输入值。我怎样才能这样加快进度呢?
发布于 2018-10-26 08:12:32
数据结构来拯救这里。在您的例子中,预先构建一个结构将使进一步的查找变得更便宜。HashSet在这里是有用的。
var set = new HashSet<T>(list);
// repeat
if(set.Contains(searchedvalue)){
return true
}对于set,您还可以使用set操作符来比较两组数据(例如合并、差分、相交)。这完全取决于你想做什么。
https://stackoverflow.com/questions/53003407
复制相似问题