比较两个哈希集?

use*_*488 6 c#

我有两个像这样的哈希集:

HashSet<string> log1 = new HashSet<string>(File.ReadLines("log1.txt"));
HashSet<string> log2 = searcher(term);
Run Code Online (Sandbox Code Playgroud)

我怎么比较这两个?

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

dtb*_*dtb 15

要删除所有项目log2即是log1,你可以使用的HashSet <T> .ExceptWith方法:

log2.ExceptWith(log1);
Run Code Online (Sandbox Code Playgroud)

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

HashSet<string> log3 = new HashSet<string>(log2.Except(log1));
Run Code Online (Sandbox Code Playgroud)


Ode*_*ded 7

使用LINQ:

log1.Intersect(log2).Any()
Run Code Online (Sandbox Code Playgroud)

IntersectExceptMSDN上.