我有两个这样的哈希集:
HashSet<string> log1 = new HashSet<string>(File.ReadLines("log1.txt"));
HashSet<string> log2 = searcher(term);
我将如何比较两者?
我想确保它log2
不包含任何来自log1
. 换句话说,我想删除所有(如果有的话),log1
里面有log2
.
我有两个这样的哈希集:
HashSet<string> log1 = new HashSet<string>(File.ReadLines("log1.txt"));
HashSet<string> log2 = searcher(term);
我将如何比较两者?
我想确保它log2
不包含任何来自log1
. 换句话说,我想删除所有(如果有的话),log1
里面有log2
.
要从中删除所有项目log2
,log1
您可以使用HashSet<T>.ExceptWith 方法:
log2.ExceptWith(log1);
或者,您可以创建一个新的HashSet<T>而无需使用Enumerable.Except 扩展方法修改两个原始集:
HashSet<string> log3 = new HashSet<string>(log2.Except(log1));
你见过这个ExceptWith
功能吗?
从当前 HashSet 对象中移除指定集合中的所有元素。