我有一個HashSet<string>
,約有50k個成員。我有另一個對象列表,我正在逐個迭代以確定對象的電子郵件是否存在。如果是這樣,我需要對該對象執行一些操作。在HashSet中搜索字符串<string>性能
var emailList = db.Emails.Select(s => s.EmailAddress.ToLower()).ToList();
var emailHash = new HashSet<string>(emailList);
var objects = db.Objects.ToList();
// everything is fine up to this point
foreach (var object in objects) {
if (!emailHash.Any(s => s.Equals(object.Email))) { // This takes ~0.3s
Console.WriteLine("Email: {0}", object.Email);
}
}
我該怎麼做才能加快評估一個字符串是否存在於一個字符串列表中?