比较两个哈希集?

我有两个这样的哈希集:

HashSet log1 = new HashSet(File.ReadLines("log1.txt")); HashSet log2 = searcher(term); 

我怎么比较这两个?

我想确保log2不包含log1任何条目。 换句话说,我想删除log1log2中的所有项目(如果有的话)。

要从log1删除log2中的所有项目,可以使用HashSet .ExceptWith方法 :

 log2.ExceptWith(log1); 

或者,您可以使用Enumerable.Except扩展方法创建新的HashSet 而无需修改两个原始集:

 HashSet log3 = new HashSet(log2.Except(log1)); 

使用LINQ:

 log1.Intersect(log2).Any() 

请参阅MSDN上的“ Intersect和“ Except ”。

你看过ExceptWithfunction吗?

从当前HashSet对象中删除指定集合中的所有元素。